P3P

背景

P3P表示的是个人隐私安全平台项目,是一种web/浏览器标准,被设计成获得更好的用户web隐私控制。当前(截止2014年),所有的主流浏览器中只有IE浏览器支持。它通常发挥作用在处理老旧的应用程序上。

许多现代的组织都执意地忽略P3P。下面是Facebook关于该主题说过的话:

建立P3P的组织叫做Wide Web Consortium,它因为大部分的现代浏览器都没有完全支持P3P所以几年前暂停了他们的工作。因为,P3P的标准现在有点过时并且也不会体现在当前web使用的技术上,所以大部分的网站都没有P3P策略。 其他信息也可以参考http://www.zdnet.com/blog/facebook/facebook-to-microsoft-p3p-is-outdated-what-else-ya-got/9332

Sails支持的P3P

但是抛开这些不谈,有时候你无论如何都不得不实现P3P。

幸运的是,有一些不同的模块存在支持Express或Sails的P3P功能只需要在相关的P3P头部使能。为了使用这些模块来处理P3P头部,使用下面的的指令从npm中安装,然后在你的项目中打开config/http.js文件并将它配置为一个自动以的中间件。要做到这一点,定义你的P3P中间件为“p3p",并且添加字符串”p3p"到你想要在中间链中运行的middleware.order数组中(放置最好的地方是在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'
    ],
    // .....
  }
};

参考下面的例子获取更多细节-并确保跟随你正在使用的模块的文档链接,获取最新的信息,它的特性的对比分析以及任何相关的bug修复和高级使用细节。

Using node-p3p

node-p3p是在MIT许可证下的开源项目。

# In your sails app
npm install p3p --save

然后在config/http.jsmiddleware配置对象中配置:

  // ...
  // node-p3p provides a recommended compact privacy policy out of the box
  p3p: require('p3p')(require('p3p').recommended)
  // ...
Using lusca

lusca是在MIT许可证下的开源项目。

# In your sails app
npm install lusca --save

然后在config/http.js的middleware配置对象中配置:

  // ...
  // "ABCDEF" ==> The compact privacy policy to use.
  p3p: require('lusca').p3p('ABCDEF')
  // ...

额外资源:

results matching ""

    No results matching ""