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

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Web

openssl s_client コマンドでウェブサーバーの SSL/TLS 対応状況を診断する

openssl s_client コマンドを使い、ウェブサーバーのSSL/TLS対応状況を診断します。 目次1. OpenSSL について2. openssl s_client コマンドについて以降の …

no image

クロスサイト・スクリプティング対策 by IPA「安全なウェブサイトの作り方 第7版」

photo credit: XSS attack on YouTube via photopin (license) 安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構の、「クロスサイ …

Web Security

CSP (Contents Security Policy) の記述例

目次記述例メモその他のメモ参考 記述例 デフォルト設定の記述をする(HTTPレスポンスヘッダの出力)。 同一オリジンも含めて全てのソース1からの読み込みを禁止する場合 Content-Security …

no image

CSRF(クロスサイト・リクエスト・フォージェリ) by IPA「安全なウェブサイトの作り方 第7版」

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

Web Security

JavaScript とHTML5のセキュリティ対策

JavaScript や HTML5 を安全に使うため、気を付けるべきポイントについて書いています。 目次1. 基礎知識発生しやすい脆弱性信頼できない値はどこからくるのか?(ソース)信頼できない値が出 …