WordPressのセキュリティ対策について真面目に考える機会があったので、あれこれ試行錯誤の備忘録。
セキュリティ対策プラグインとしてよくお世話になっているのが、ログイン試行回数を制限できる「Limit Login Attempts」というプラグイン。
このプラグインには試行回数オーバーでロックされたIPとログインユーザー名をログに記録する機能があり、たいがいは「admin」などのありがちなユーザー名でのアタックが記録されてるのですが、たまにドンピシャのユーザー名を使用されている場合があります。
よくよく考えればユーザー名の入手なんて比較的容易にできちゃったりするのがWordPress。
何もしないよりはましだろうということで、以下ちょっとしたセキュリティ対策。
■ログイン画面へのアクセスを認証制にする
まずはオーソドックスに、ログイン画面自体に認証をかけてしまおうという方法。
.htaccessなどを使用してください。
<Files wp-login.php> AuthUserfile /xxxxx/xxxxx/.htpasswd AuthGroupfile /dev/null AuthName "Please enter username and password" AuthType Basic require valid-user </Files>
■投稿者アーカイブページへアクセスさせない
テーマファイルに「author.php」を追加し、適宜内容を設定する。例えば wp_redirect() させたり、とか。
■投稿者アーカイブページへのリダイレクトを制御
パーマリンク設定をデフォルト以外の設定にしている場合、「http://xxxxx/?author=1」などにアクセスされると、あまり見られたくないURLに転送されちゃったりしますので、functions.phpに以下を記述。
function disabled_redirect_author_archive() { if (is_author()) { // ここにお好みの処理を記述 wp_redirect(home_url()); exit; } } add_action('template_redirect', 'disabled_redirect_author_archive');
■フィードに投稿者名を出力させない
「http://xxxxxx/feed」などにアクセスすると取得できるフィードにはユーザー名(またはニックネーム)が出力されてしまうので、functions.phpに以下を記述。
function remove_feed_author($name) { return is_feed() ? 'unknown' : $name; } add_filter('the_author', 'remove_feed_author');
こんなところかな。プラグインで対策可能なものもありますが、お好みで。