Content-Security-Policyとは

>コンテンツセキュリティポリシー (CSP) は、クロスサイトスクリプティング (Cross-site_scripting) やデータインジェクション攻撃などのような、`特定の種類の攻撃を検知し、影響を軽減するために追加できるセキュリティレイヤー`です。これらの攻撃はデータの窃取からサイトの改ざん、マルウェアの拡散に至るまで、様々な目的に用いられます。
* 特定の種類の攻撃を検知し、影響を軽減するために追加できるセキュリティレイヤー


>CSP は完全な後方互換性を保って設計されています（ただし、 CSP 2 については後方互換性がない点もあり、明示的に記述されています。詳細はこちらの 1.1 章を参照してください）。 `CSP に対応していないブラウザーは CSP を無視し、通常通り機能`します。CSP が追加するようなさらなる制限はなく、標準の同一オリジンポリシーの保護のみが適用されます。
* CSP に対応していないブラウザーは CSP を無視し、通常通り機能になる


>CSP を有効にするには、`ウェブサーバーから Content-Security-Policy HTTP ヘッダーを返すように設定`する必要があります（X-Content-Security-Policy ヘッダーに関する記述が時々ありますが、これは古いバージョンのものであり、今日このヘッダーを指定する必要はありません）。
* このヘッダーを指定する必要はありません
* WEBサーバーに関連する


https://developer.mozilla.org/ja/docs/Web/HTTP/CSP#%E3%82%AF%E3%83%AD%E3%82%B9%E3%82%B5%E3%82%A4%E3%83%88%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%AE%E8%BB%BD%E6%B8%9B:~:text=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%20(CSP)%20%E3%81%AF,%E6%8C%87%E5%AE%9A%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%EF%BC%89%E3%80%82


>コンテンツ・セキュリティ・ポリシー・ヘッダーを使用すると、`従業員のかわりにリクエスト可能なリソースを開発者が制御`できるので、`コンテンツ・インジェクションのリスクが軽減`されます。
>
>コンテンツ・セキュリティ・ポリシーとは、`Webアプリケーションのクライアント側リソース用にJavaScript、CSS、イメージなどのソース・ホワイトリストを作成できる、ブラウザ側のメカニズム`です。コンテンツ・セキュリティ・ポリシーは、そのような`ソースからのリソースのみを実行またはレンダリングするように、特別なHTTPヘッダーを使用してブラウザに指示`します。

https://docs.oracle.com/cd/F23552_01/web-tier/12.2.1.4/secure-ohs/configuring-http-secure-headers.html#GUID-97C62A25-BE61-4679-931D-8A026E7E1E4B:~:text=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%BB%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%83%BB%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%83%BB%E3%83%98%E3%83%83%E3%83%80%E3%83%BC,X%2DXSS%2DProtection

* ソースからのリソースのみを実行またはレンダリングするように、特別なHTTPヘッダーを使用してブラウザに指示

>index.htmlに記載されている`すべての外部リソースのうち、CSPに違反していないリソースのみ読み込みと実行`が行われます。
>
>上の画像の例では、img-src ‘self’と指定されているため、同一オリジンからの画像リソースのみ許可され、https://bbb.com/BBB.jpg の読み込みは拒否されます。
>
>また、script-src nonce-xxxxと指定されているため、nonce値（※nonceの詳細は後述）が一致するccc.jsはスクリプトが実行されますが、ddd.js はnonce値がなくCSP違反となるため実行されません。
>※仮にinlineでスクリプトが記載されていても、CSP違反の場合は実行はされません。

https://liginc.co.jp/blog/tech/639126#:~:text=index.html%E3%81%AB%E8%A8%98%E8%BC%89%E3%81%95,%E3%81%AF%E3%81%95%E3%82%8C%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82
>Webサーバーは、エンド・ユーザーのWebアプリケーションがスタイルシートやイメージなどをロードできるドメインのリストを把握していないため、コンテンツ・セキュリティ・ポリシーを実装するのは不可能です。Webサーバーは、アプリケーションがプラグインやメディアなどを使用するかどうかや、これらをロードできるかどうかも把握していません。
>
>オラクル社では、コンテンツ・セキュリティ・ポリシー・ヘッダーを使用して、アプリケーション特性に基づくポリシーを定義および実装することをお薦めしています。

コンテンツ・セキュリティ・ポリシー・ルールの使用例を次に示します:

>例: ルール1
>```
>Content-Security-Policy: default-src 'self'
>```
>これは制限的なルールであり、次のようなアプリケーションで機能します:
すべてのリソースが、指定したページの同じドメインでホストされます。
スクリプトおよびスタイル・リソースに対するインラインまたは評価がありません。

>例: ルール2
>```
>Content-Security-Policy: default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self';
>```
>このポリシーの内容:
オブジェクト、フレーム、メディアなどのリソースのロードを許可しません。
同じ起点からのイメージ、スクリプト、AJAXおよびCSSを許可します。

>例: ルール3
>```
>Content-Security-Policy: frame-ancestors self;
>```

https://docs.oracle.com/cd/F23552_01/web-tier/12.2.1.4/secure-ohs/configuring-http-secure-headers.html#GUID-97C62A25-BE61-4679-931D-8A026E7E1E4B:~:text=%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%83%BB%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%83%BB%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%83%BB%E3%83%98%E3%83%83%E3%83%80%E3%83%BC,X%2DXSS%2DProtection

# 感想
説明への理解が難しい。
`これは古いバージョンのものであり、今日このヘッダーを指定する必要はありません`と書いてあり必要なのか必要じゃないのかわからなかった。

どう言う分野を知っていれば理解できるのか？

https://liginc.co.jp/blog/tech/639126