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ヘッダーを処理するためのモジュールの1つを使用するには、以下の手順に従って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'
],
// .....
}
};
より詳しいガイダンスについては以下の例を参照し、使用しているモジュールのドキュメントへのリンクに従って、最新の情報を参照し、その機能の比較分析、最近のバグ修正、高度な使用方法の詳細を確認してください。
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')
// ...