コンテンツセキュリティ入門:CSPと関連対策を深掘りし、WordPressで安全に運用する方法

はじめに:コンテンツセキュリティとは何か

「コンテンツセキュリティ」は、ウェブアプリケーションやウェブサイト上で配信されるコンテンツ(HTML、JavaScript、CSS、画像、フォント、メディア等)が意図しない実行や読み込み、改ざんを受けないように制御する考え方と技術の総称です。特に注目されるのが Content Security Policy(CSP)で、ブラウザ側で許可されるコンテンツの出所や実行方法を宣言的に制御します。その他、HTTPヘッダやCookie属性(HttpOnly、Secure、SameSite)なども含め、総合的に検討する必要があります。

CSP(Content Security Policy)の基本概念

CSPは、サーバーがレスポンスヘッダ(またはmetaタグ)でポリシーを指定し、ブラウザがそのポリシーに従ってリソースの読み込みやスクリプト実行を制限する仕組みです。主な目的はクロスサイトスクリプティング(XSS)攻撃やデータインジェクションの影響を低減することです。

  • ポリシーはディレクティブ(例: default-src, script-src, style-src, img-src, connect-src, frame-ancestors 等)で構成される。
  • 特定のオリジン(https://example.com)やキーワード('self'、'unsafe-inline'、'unsafe-eval')、nonceやハッシュ('nonce-...'、'sha256-...')で許可を細かく設定できる。
  • report-uri(古い)、report-to(新しい)を使って違反を収集できる(監査やチューニングに有用)。

主なディレクティブと使いどころ