コンテンツセキュリティポリシーの概要
CSP は、Web アプリケーションセキュリティに関する W3C ワーキンググループの勧告候補です。このフレームワークでは、W3C が推奨する Content-Security-Policy HTTP ヘッダーを使用しています。
フレームワークの CSP は、次のリソースに対応しています。
- JavaScript ライブラリ
- すべての JavaScript ライブラリは、Salesforce 静的リソースにアップロードする必要があります。詳細は、「外部 JavaScript ライブラリの使用」 を参照してください。
- リソースの HTTPS 接続
- すべての外部フォント、画像、フレーム、および CSS は、HTTPS URL を使用する必要があります。
コンテンツセキュリティポリシーと LockerService
今後のリリースでは、LockerService は CSP を強化し、インラインスクリプト (script-src) の unsafe-inline および unsafe-eval キーワードを禁止する方法でクロスサイトスクリプティング攻撃の可能性を排除します。コード内でのこれらのキーワードの使用を排除し、サードパーティライブラリを unsafe-inline や unsafe-eval に依存しない最近のバージョンに更新することをお勧めします。
LockerService は、今回のリリースの重要な更新です。LockerService は、Spring ’17 リリースのすべての組織に対して自動的に有効化されます。Spring ’17 リリースの前は、更新の有効化および無効化を必要に応じて手動で何度でも行って組織への影響を評価することができます。この重要な更新は、フレームワークの CSP には影響を与えません。
ブラウザサポート
CSP が適用されないブラウザもあります。CSP が適用されるブラウザのリストについては、caniuse.com を参照してください。
CSP 違反の検出
ポリシー違反は、ブラウザの開発者コンソールのログに記録されます。違反は次のようなメッセージになります。
1Refused to load the script 'https://externaljs.docsample.com/externalLib.js'
2because it violates the following Content Security Policy directive: ...アプリケーションの機能に影響がない場合は、CSP 違反を無視できます。