5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

nginxでContent-Security-Policyヘッダを入れる

Last updated at Posted at 2022-02-14

Content-Security-Policyヘッダを入れなさいと偉い人からお達しが出たので調べて追加してみました。
初耳だったので調べたところ、特定の攻撃に対する効果軽減のために設定するヘッダのようです。

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

サイトのページから外部リソースにアクセスする対象を予め列挙しておいて、それ以外へのアクセスは許可しない。という対応でクロスサイトスクリプティングは回避するみたいですね。
上記のサイトには記載がありますが、いまいち読み取れなかったので試行錯誤しながらお試ししてみました。

今回はnginxなので、nginxの構文で記載しています。

 add_header Content-Security-Policy "default-src 'self'";

この記載だと、自身のサイト以外のリソース(サブドメインもだめ)の読み込みはしない。という設定。
外部のjavascriptもdata:で始まる画像イメージも読み込めません。
今回は、特定の外部リソース(フォントとかJavascript)も読み込みたいし、data:から始まる画像も表示するのでこんな設定にしました。

 add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' data: tekitouna-font.com *.subdomain.thissite.co.jp *.googleapis.com *.googletagmanager.com *.google.com";

サイト側で利用するリソースが増えたらまたnginxの設定を変更しないといけない。。。
めんどくさいなぁ

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?