2016-07-19 12 views
1

私は大きい、従来のコードベースを持っています。Content-Security-Policyヘッダーを導入したいと思います。短期的にはサイトを本当にロックダウンすることはできません(たとえば、自動テストカバレッジのない場所にインラインスクリプトがあるなど)が、少なくとも私が知っているコンテンツソースへのアクセスを禁止することから始めることができます確かに現在使用されていないし、ゆっくりと徐々にダウンしていきます。最大限に許容されるコンテンツセキュリティポリシーは何ですか?

残念ながら、使用されていないソースのリストはかなり短くなっています。このようimages sourced using the data: schemeなど多くのことを、破った

default-src * 'unsafe-eval' 'unsafe-inline' 

:これはContent-Security-Policy値での私の最初の試みでした。周囲を見渡すと、に明示的に呼び出されていないconnect-src ws:など、a number of things you might want to includeが表示されます。

最大許容値Content-Security-Policyのヘッダー値は、ブラウザがデフォルトで行うことができるすべての操作を基本的にサイトに許可しますか?別の方法で尋ねられました:私はどのヘッダー値を導入しても間違いないでしょうか?

私が何かを壊さないことがわかってから、削除しても安全だと分かっているパーミッションを引き出すことができれば、レガシーサイトにヘッダーを導入するのが楽になります。

答えて

6

tl; drは、「レポートのみ」モードを使用して、レガシーサイトにポリシーを導入します。

w3.org/TR/CSP2/#source-list-guid-matchingを参照してください。上記で定義したように

、そのような「データ」として独自のコンテンツの特定部分 を参照特殊URLスキーム、「ブロブ:」および「ファイルシステムは、」*のポリシーに一致から除外 であり、必要明示的にリストされている

したがって、default-src * 'unsafe-eval' 'unsafe-inline' 'unsafe-dynamic' data: filesystem: about: blob: ws: wss:の行に沿ったものは、おそらく最も緩やかな方針に近いでしょう。もちろん、ホワイトリストに登録する必要のあるプロトコルがあります。


もつとも

通常の人は逆のアプローチを取ります。彼らはContent-Security-Policy-Report-Only: default-src 'none'でヘッダーを展開します。これはサイトの読み込みに影響を与えず、違反やコンソールの警告に基づいてポリシーをラチェットダウンできます。

最初のポリシーを作成してreport-uri.ioを使用してレポート違反を表示するには、caspr chrome extensionから開始することを強くお勧めします。ポリシーが安定していて違反が最小限の場合は、ポリシーを強制的にモードに切り替えます。

+1

Cool。私は特に質問したときにあなたは両方の質問に答えて、おそらくそれを行うより良い方法を指摘してくれたことに感謝します(私が見落としていたカスプリ拡張とレポートモードの使用)。私はそれを試してみるつもりです。 –

関連する問題