Missing Anti-clickjacking Header
「Missing Anti-clickjacking Header」というアラートは、クリックジャッキング攻撃対策として必要なヘッダーが設定されていないことを示しています。このアラートを解消するためには、適切なHTTPヘッダーを追加する必要があります。特に、X-Frame-Options
または Content-Security-Policy
ヘッダーを設定することが推奨されます。
1. X-Frame-Options
ヘッダーの追加
X-Frame-Options
ヘッダーは、ページが <iframe>
や <frame>
で表示されることを制御するためのヘッダーです。以下のいずれかを設定することで、クリックジャッキング攻撃を防ぐことができます。
- DENY: どのページにも埋め込まれないようにする。
- SAMEORIGIN: 同一オリジンのページにのみ埋め込むことを許可する。
Apache の場合
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
</IfModule>
Nginx の場合
add_header X-Frame-Options "SAMEORIGIN";
PHP の場合
header('X-Frame-Options: SAMEORIGIN');
2. Content-Security-Policy
ヘッダーの追加
Content-Security-Policy
(CSP) ヘッダーの frame-ancestors
ディレクティブを使用して、どのサイトがページを埋め込むことができるかを指定することもできます。
Apache の場合
<IfModule mod_headers.c>
Header always set Content-Security-Policy "frame-ancestors 'self'"
</IfModule>
Nginx の場合
add_header Content-Security-Policy "frame-ancestors 'self'";
PHP の場合
header("Content-Security-Policy: frame-ancestors 'self'");
3. WordPressでの設定
WordPressサイトにこれらのヘッダーを追加する方法はいくつかあります。テーマの functions.php
ファイルにコードを追加するか、セキュリティプラグインを利用する方法があります。
functions.php
にコードを追加
以下のコードを functions.php
に追加することで、ヘッダーを設定できます。
function add_security_headers() {
header('X-Frame-Options: SAMEORIGIN');
header("Content-Security-Policy: frame-ancestors 'self'");
}
add_action('send_headers', 'add_security_headers');
セキュリティプラグインの利用
WordPressのセキュリティプラグインを利用して、ヘッダーを簡単に設定できます。以下は推奨されるプラグインの一例です。
- iThemes Security: ヘッダーの設定を含む多くのセキュリティ機能を提供します。
- Wordfence Security: 全体的なセキュリティ強化をサポートするプラグインです。
まとめ
クリックジャッキング攻撃を防ぐために、X-Frame-Options
または Content-Security-Policy
ヘッダーを設定することが重要です。ApacheやNginxの設定ファイル、PHPコード、またはWordPressのテーマファイルやセキュリティプラグインを使用してこれらのヘッダーを追加することができます。これにより、OWASP ZAPで報告された「Missing Anti-clickjacking Header」アラートを解消することができます。