コンテンツセキュリティポリシーの概要
CSP は、Web アプリケー���ョンセキュリティに関する W3C ワーキンググループの勧告候補です。このフレームワークでは、W3C が推奨する Content-Security-Policy HTTP ヘッダーを使用しています。
フレームワークの CSP は、次のリソースに対応しています。
- JavaScript ライブラリ
- すべての JavaScript ライブラリは、Salesforce 静的リソースにアップロードする必要があります。詳細は、「外部 JavaScript ライブラリの使用」 を参照してください。
- リソースの HTTPS 接続
- すべての外部フォント、画像、フレーム、および CSS は、HTTPS URL を使用する必要があります。
CSP 信頼済みサイトを追加すれば、CSP ポリシーを変更して、サードパーティリソースへのアクセスを拡張できます。
コンテンツセキュリティポリシーと LockerService
LockerService は CSP を強化して、クロスサイトスクリプティング攻撃の可能性を排除します。これらの CSP の変更は、Sandbox 組織および Developer Edition 組織でのみ適用されます。
厳格な CSP によってインラインスクリプト (script-src) の unsafe-inline および unsafe-eval キーワードが禁じられます。eval() またはインライン JavaScript コード実行を使用してすべてのコールを削除し、使用するコードとサードパーティライブラリがこれらのルールに従っていることを確認してください。サードパーティライブラリを unsafe-inline や unsafe-eval に依存しない最近のバージョンに更新する必要がある可能性があります。
LockerService は、今回のリリースの重要な更新です。Summer '17 リリースで、LockerService がすべての組織で自動的に有効になります。Summer '17 リリースの前は、更新の有効化および無効化を必要に応じて手動で何度でも行って組織への影響を評価することができます。
ブラウザサポート
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 違反を無視できます。