CSP: Wildcard Directive
OWASP ZAPで「CSP: Wildcard Directive」のアラートが報告された場合、これはContent Security Policy (CSP)の設定でワイルドカード (*
) が使用されていることを示しています。ワイルドカードはセキュリティリスクを高めるため、具体的なソースを指定することが推奨されます。以下に解消するための手段を示します。
1. CSPの理解
Content Security Policy (CSP) は、ウェブページのリソース読み込みを制御するためのセキュリティ機能です。CSPを正しく設定することで、XSS攻撃やデータインジェクション攻撃を防止できます。
2. CSPの設定を見直す
ワイルドカード (*
) を使用しているディレクティブを具体的なソースに置き換えます。例えば、以下のようなCSP設定があるとします:
Content-Security-Policy: default-src 'self'; script-src 'self' *; style-src 'self' *;
この設定では、script-src
と style-src
にワイルドカードが含まれています。これを修正します。
3. 具体的なソースに置き換える
ワイルドカードの代わりに、信頼できる具体的なソースを指定します。例えば、以下のように修正します:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' https://trusted.cdn.com;
この設定では、スクリプトとスタイルシートのソースを信頼できるCDNに限定しています。
4. CSPの適用
WordPressサイトにCSPを適用するためには、以下の方法があります。
4.1. functions.phpに追加
テーマの functions.php
ファイルに以下のコードを追加します:
function add_csp_header() {
header("Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' https://trusted.cdn.com;");
}
add_action('send_headers', 'add_csp_header');
4.2. セキュリティプラグインの使用
WordPressのセキュリティプラグイン(例:Wordfence、iThemes Security)を使用して、CSPヘッダーを追加・管理することもできます。プラグインの設定画面からCSPを追加するオプションを探してください。
4.3. .htaccessファイルの編集
Apacheサーバーを使用している場合、.htaccess
ファイルに以下を追加して、CSPヘッダーを設定することもできます:
<IfModule mod_headers.c>
Header set Content-Security-Policy "default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' https://trusted.cdn.com;"
</IfModule>
5. CSPのテスト
CSPを適用した後、OWASP ZAPで再スキャンを行い、警告が解消されたことを確認します。また、ブラウザのデベロッパーツールを使用して、CSPヘッダーが正しく設定されているか確認します。
6. CSPレポートURIの使用
CSP設定にレポートURIを追加し、CSP違反が発生した場合にレポートを受け取ることも有効です。これにより、問題のあるリソースを特定しやすくなります:
Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted.cdn.com; style-src 'self' https://trusted.cdn.com; report-uri /csp-report-endpoint;
このようにして、具体的なソースを指定し、CSP設定を強化することで、「CSP: Wildcard Directive」の警告を解消し、サイトのセキュリティを向上させることができます。