P3P 代表“隐私偏好平台”(Platform for Privacy Preferences),是一种浏览器/网页标准,旨在促进更好的消费者网络隐私控制。目前(截至 2014 年),在所有主流浏览器中,只有 Internet Explorer 支持它。在处理遗留应用程序时,P3P 最常发挥作用。
许多现代组织有意忽略 P3P。以下是Facebook 对此事的看法
创建 P3P 的组织万维网联盟 (World Wide Web Consortium) 几年前就暂停了对该标准的研究,因为大多数现代网络浏览器并不完全支持 P3P。因此,P3P 标准现已过时,无法反映当前网络上使用的技术,因此大多数网站目前都没有 P3P 策略。
另请参阅:http://www.zdnet.com/blog/facebook/facebook-to-microsoft-p3p-is-outdated-what-else-ya-got/9332
尽管如此,有时您仍然必须支持 P3P。
幸运的是,存在一些不同的模块,它们通过启用相关的 P3P 标头为 Express 和 Sails 提供 P3P 支持。要使用其中一个模块来处理 P3P 标头,请按照以下说明从 npm 安装它,然后打开项目中的config/http.js
并将其配置为自定义中间件。为此,将您的 P3P 中间件定义为“p3p”,并在middleware.order
数组中添加字符串“p3p”,您希望它在中间件链中运行的位置(一个好的放置位置可能是在cookieParser
之前)。
例如,在config/http.js
中
// .....
module.exports.http = {
middleware: {
p3p: require('p3p')(p3p.recommmended), // <==== set up the custom middleware here and named it "p3p"
order: [
'startRequestTimer',
'p3p', // <============ configured the order of our "p3p" custom middleware here
'cookieParser',
'session',
'bodyParser',
'handleBodyParserError',
'compress',
'methodOverride',
'poweredBy',
'$custom',
'router',
'www',
'favicon',
'404',
'500'
],
// .....
}
};
查看下面的示例以获取更多指导,并确保关注链接以查看您正在使用的模块的文档,了解最新信息、其功能的比较分析、任何最近的错误修复以及高级用法详细信息。
node-p3p
在MIT 许可证下是开源的。
# In your sails app
npm install p3p --save
然后在config/http.js
中的middleware
配置对象中
// ...
// node-p3p provides a recommended compact privacy policy out of the box
p3p: require('p3p')(require('p3p').recommended)
// ...
lusca
在Apache 许可证下是开源的。
# In your sails app
npm install lusca --save
然后在config/http.js
中的middleware
配置对象中
// ...
// "ABCDEF" ==> The compact privacy policy to use.
p3p: require('lusca').p3p('ABCDEF')
// ...