WordPress不正アクセス対策 POSTリクエストに対して「403 Forbidden」を返す

2018/04/08

WordPressのセキュリティは以下のとおり対策しています。

  • WordPressを最新バージョンにする
  • ファイル、ディレクトリ(フォルダ)のパーミッションを設定する
  • ログインパスワードを英数記号をランダムに設定する
  • プラグイン「SiteGuard WP Plugin」を導入する
  • ログインパスワードを英数記号をランダムに設定する

サイト改ざん防止については、ロリポップのページを参考にしています

ロリポップ公式HP サイト改ざん防止策

面倒ですが、WordPressをアップグレードしたりプラグインを新たに導入する場合はFFFTPを使ってアップロード時にパーミッションを設定するようにしています。
パスワードはWordPressで自動生成されたものを使っています。
自動生成されたものは記号も混じっているのでセキュリティ的にはいいかと。

また、プラグイン「SiteGuard WP Plugin」はセキュリティ対策には優秀なプラグインで初期設定のままで十分使えます。

「SiteGuard WP Plugin」を導入して分かることは不正アクセスの多さです。
「シエンタ to DIY」のように開設から間もないサイトでもかなりの不正アクセスがあることが分かります。
また、不正アクセスの全てがPOSTリクエストによるものです。

ログインに失敗しているxmlprcが全て不正アクセスです。
(SiteGuard WP Plugin ログイン履歴)
SiteGuard WP Plugin ログイン履歴01SiteGuard WP Plugin ログイン履歴02

そこでwp-login.phpまたはwp-adminフォルダへのPOSTリクエストが自分のドメインからでない場合は、「403 Forbidden」を返すよう設定をすることにしました。

POSTリクエストに対して「403 Forbidden」を返す設定方法

wp-login.phpが置いてあるディレクトリの.htaccessに以下のコードを記述します。
記述する際はバックアップを忘れずに。

1 <IfModule mod_rewrite.c>
2 RewriteEngine on
3 RewriteCond %{REQUEST_METHOD} POST
4 RewriteCond %{HTTP_REFERER} !^https://(.*)?sha9\.net [NC]
5 RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
6 RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
7 RewriteRule ^(.*)$ – [F]
8 </IfModule>

最近のコメント

スポンサーリンク