This post is also available in: English-US (英語)
今年に入って特にwordpressのハッキング攻撃がひどくなってきました。
wordpressのwp-login.phpやadmin.phpにBasic認証かけることで、簡易的にですがサイトのハッキングがされにくくなります。
wordpress(wp-login/admin.php)にBasic認証をかけるとwp-login.php(wordpressログイン画面)にアクセスした場合、画像のようにユーザー名とパスワードを要求されるようになります。
有名なハッキング方法には「辞書攻撃」と「総当たり攻撃(ブルートフォースアタック)」というのがあるらしいです。
「辞書攻撃」はwordpressユーザーが使っていそうなID/PASSを予想し辞書化して攻撃する。
「総当たり攻撃(ブルートフォースアタック)」は名前のとおり文字列の組み合わせを順番に試して攻撃する。
Basic認証のID/PASSはwordpressとは異なるものにしておく方が安全性が高まります。
また、「総当たり攻撃(ブルートフォースアタック)」への対抗手段として[Simple Login Lockdown]というプラグインがおすすめです。
別の記事[Simple Login Lockdownでログインできない時に解除する方法]で紹介しているので参考にしてみてください。
wordpressのwp-login.php/admin.phpにBasic認証かける
AuthUserFile home/www/.htpasswd AuthName "Input UserName And Pass" AuthType Basic <Files wp-login.php> require valid-user </Files> <FilesMatch "\/?wp-admin"> require valid-user </FilesMatch> <Files wp-admin/admin-ajax.php> Satisfy any order allow,deny allow from all </Files> # Exclude the file upload and WP CRON scripts from authentication <FilesMatch "(async-upload\.php|wp-cron\.php|xmlrpc\.php)$"> Satisfy Any Order allow,deny Allow from all Deny from none </FilesMatch>
1.[.htaccess]ファイルをwp-login.phpと同じディレクトリに作成する。
2.上記のコードをコピペする。
3.[AuthUserFile]の[home/www/.htpasswd]の部分を、[.htpasswd]ファイルを置くルートディレクトリからのフルパスに変える。
例えば、さくらサーバーで[wwwフォルダ]の中に.htpasswdファイルを作る場合には[/home/(アカウント名)/www/.htpasswd]となります。
4.[.htpasswd]ファイルを[手順3]で指定した場所に作成する。
5.リンク先のツールでBasic認証の際に使用するID/PASSを入力し(この時に初めて好きなIDとPASSを決定する)、暗号化コードを生成する。
htpasswdファイル生成(作成):lufttools
6.こんな感じ→(w:dMVUvKsT2z78.)の生成されたコードを、.htpasswdファイルに貼り付け保存する。
7.ログイン画面(wp-login.php)や管理画面(wp-admin.php)にアクセスしてみて動作確認する。
もし、不具合が起こったりBasic認証を解除したい場合には[.htaccess]ファイルの上記のコピペしたコード部分を削除することで解決します。
coreserver(コアサーバー)を使っている場合
coreserver(コアサーバー)の場合、上記の[AuthUserFile]のフルパスを記述する部分が少しわかりにくいです。
アカウント名は[アカウント@サーバー]のアカウントの部分。
フォルダ名は[public_html]以下、.htpasswdを作成した場所のフルパス。
AuthUserFile /virtual/アカウント名/public_html/フォルダ名/.htpasswd
参考サイト:
User:Hakre/Htaccess Auth Excludes « WordPress Codex
WordPressの管理画面とログイン画面にBasic認証を適用する.htaccessの記述 | Simple Colors