WordPress wp-login.phpへの攻撃をHTTP_REFERERで弾く
wp-login.php
に対する攻撃をHTTP_REFERERを使用して弾く方法について説明します。攻撃者は、通常、wp-login.php
に対して総当たり攻撃を行います。このような攻撃を防ぐために、HTTP_REFERERを使用して、リファラーチェックを行うことができます。
以下は、wp-login.php
へのアクセスがHTTP_REFERERを持たない場合、トップページにリダイレクトするようにする.htaccess
の設定例です。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$
RewriteCond %{HTTP_REFERER} !^http(s)?://(.*\.)?yourdomain\.com [NC]
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteRule .* http://%{SERVER_NAME}/ [L]
</IfModule>
この設定は、POSTメソッドでwp-login.php
にアクセスがあった場合、HTTP_REFERERが自分のドメイン以外からのアクセスだった場合にリダイレクトし、攻撃を防止します。
上記の設定では、yourdomain.com
を自分のドメインに置き換える必要があります。また、この設定は.htaccess
ファイルに追加する必要があります。.htaccess
ファイルが無い場合は新規に作成して、WordPressのインストールディレクトリに配置してください。