堅牢化:ヘッダー、ファイルエディター、リクエストフィルター
堅牢化の画面には、3 つのスイッチのグループがあります: フロントエンド向けのセキュリティヘッダー、組み込みのファイルエディターのロック、そして典型的な攻撃パターンを含むリクエストを拒否するフィルターです。スイッチは保存の直後に効き、ファイルに手を入れる必要はありません。
セキュリティヘッダー
- 「セキュリティヘッダーを送信」はグループ全体をオンにするもので、初期設定でオンになっています。
- 「X-Frame-Options」は SAMEORIGIN に設定されており、DENY に変更できます。それ以外の値は用意されていません。
- 「X-Content-Type-Options: nosniff」は初期設定でオンです。
- 「Referrer-Policy」は strict-origin-when-cross-origin の値を送り、初期設定でオンです。
- 「CSP: upgrade-insecure-requests」はこの 1 つのディレクティブだけを設定するもので、初期設定ではオフです。より厳しい Content-Security-Policy は、別途ご自身で用意してください。
ファイルエディターをロックし、リクエストをフィルターする
- 「Kakapo Security」で、左側の「保護」から「堅牢化」(ドイツ語:„Härtung“)に切り替えます。
- 「ファイルエディター」のカードで「ファイルエディターを無効化」のスイッチを切り替えます。そのあとページが再読み込みされます。
- 「定数 DISALLOW_FILE_EDIT」の行を見てください — その定数が追加で設定されているかどうかが表示されます。
- 必要に応じて、「リクエストフィルター」のカードで「Bad-Request フィルター (WAF-lite)」をオンにします。初期設定ではオフです。
- そのあと自分のサイトを開き、フォームと検索パラメーターをテストしてください。
- 「既知のスキャナーボットをブロック」 — こちらも初期設定ではオフです — は、sqlmap、nikto、nmap のようなユーザーエージェントをステータス 403 で拒否します。
define('DISALLOW_FILE_EDIT', true);Bad-Request フィルターは、リクエストされたアドレスとクエリ文字列の値を、ヌルバイト、../../、union … select、<script、php://input といったパターンについてチェックします。一致した場合はステータス 403 で終わり、操作ログにエントリーが 1 件書き込まれます。ログイン済みの管理者は、このフィルターの対象外です。
リクエストフィルターとボットのブロックが働くのは、フロントエンドへのアクセスのときだけです。管理画面へのリクエスト、WP-Cron の実行、REST リクエストは、その脇を素通りします。
この記事は役に立ったか?