普通の対策では認証をさせないだけなのでアクセスは減らず,サーバーのパフォーマンス低下は避けられない。
以下はwp-login.phpへのアクセス自体を阻止する対策。
WordPressの自動更新にも対応
.htaccess に追加
# END WordPress の下に
redirect 301 /wp-login.php /new-login.php
nginxなら default.conf に
rewrite ^/wp-login.php /new-login.php permanent;
wp-login.php を new-login.php に別名コピー
ファイルを開いてwp-login.php → new-login.phpに全置換
new-login.phpの<?php 以下に追加
session_start(); if(!isset($_SESSION['任意文字'])){ echo '<h1>404 Not Found<hr></h1>'; exit; } if($_SESSION['任意文字']!="てきとうなひらがな"){ echo '<h1>404 Not Found<hr></h1>'; exit; }
[logon.php] ← セッションを作るためのダミーのログインファイル
<?php session_start(); //セッション開始 $_SESSION["任意文字"]="てきとうなひらがな"; ?> <a href="new-login.php"> 秘密のログインへ </a>
普通に/wp-admin/ や /wp-login.php でログインしようとすると 404 Not Found になる。
ダミーで作った /login.php からならログインできる。