Security

CSP (Contents Security Policy) の記述例その2

投稿日:2021年2月16日 更新日:

1. はじめに

https://misc.laboradian.com/sec/1/ というページで出力している CSP (Contents Security Policy) 用HTTPヘッダを紹介します。

※ CSP の記述については、かなり前にも記事にしています。

Web Security

CSP (Contents Security Policy) の記述例

2015.04.18

2. 出力しているHTTPヘッダ

https://misc.laboradian.com/sec/1/ で出力している CSP用 HTTPヘッダは以下になります。

Content-Security-Policy:
  default-src 'self';
  script-src 'self' 'nonce-pvTbo6eMpnRCkCmdcmDYrl4ZT4g=' 'nonce-7gDA2ww3AZVnlN9yHHM8x2F4MT0=' www.googletagmanager.com cdnjs.cloudflare.com;
  style-src 'self' 'nonce-jy0KdxlwDUr7oqZylMCyLJToc/8=' cdn.jsdelivr.net cdnjs.cloudflare.com;
  img-src 'self' www.google-analytics.com;
  connect-src 'self' www.google-analytics.com;
  • 実際は1行になっており、改行してはいけません。セミコロンの部分以外ではスペース区切りしています。
  • default-src ディレクティブに 'self' を指定することで、各ディレクティブにおいてデフォルトで同一オリジンのソースを許可しています。それ以降は、各ディレクティブに対して個別に許可するソースをスペース区切りで指定しています。
DevToolsでレスポンスヘッダを見る
DevToolsでレスポンスヘッダを見る

3. 許可したいものと、その指定方法

各ソースを許可する指定方法は以下です。

許可したいもの 許可するための記述(ソースの指定)
そのサーバー上にあるファイルの読み込み(.css, .js, .png など)
  • ‘self’ を指定する。
インラインCSS, JavaScript
外部サーバー(クロスオリジン)上のファイルの読み込み
  • ドメインを指定する。
イベントハンドラ属性

例:<button onclick="alert(1)">ボタン</button>

  • 許可するのが難しいので、利用しない。リファクタリングする。

4. 参考

Web Security

CSP Level 3 で Strict CSP を利用する

2021.02.16

📂-Security

執筆者:labo


comment

メールアドレスが公開されることはありません。

関連記事

セキュリティ

アプリケーションをインストールする際は、事前に実行ファイルのウイルスチェックを行っておきましょう

目次1. はじめに2. VirusTotal とは?3. VirusTotal(日本語ページ)を使う手順4. VirusTotal(英語ページ)を使う手順5. おわりに 1. はじめに 以下の状況にお …

no image

ウェブサイトの安全性向上のための取り組み – パスワードに関する対策 by IPA「安全なウェブサイトの作り方 第7版」

ウェブサイトの安全性向上のための取り組み – パスワードに関する対策 by IPA「安全なウェブサイトの作り方 第7版」 パスワードに関する対策 初期パスワードは、推測が困難な文字列で発行 …

no image

OS コマンド・インジェクション by IPA「安全なウェブサイトの作り方 第7版」

安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「OS コマンド・インジェクション」から一部抜粋する。(この資料はPDFでしか提供されていない) 目次注意が必要なウェブサイト …

no image

クリックジャッキング(Clickjacking)対策

対策 方法1:CSP(Content Security Policy) の frame-ancestors ディレクティブを使う。 方法2:HTTP レスポンスヘッダに、X-Frame-Options …

PHP

Laravel 5 でのセキュリティ対策 (PHP)

目次1. ユーザーによる入力値の検証入力パラメータ値のエンコーディングが正しいことをチェックするMiddlewareの例制御文字を禁止するバリデーションルールを追加する例1. バリデーション用のクラス …