.htaccess

.htaccessで特定のファイルとディレクトリにBasic認証をかける

2017.08.21

鍵

特定のファイルとディレクトリにBasic認証をかける場合の.htaccessの記述です。WordPressの管理画面、ログイン画面で設定しています。

.htpasswdと.htaccessを用意する

Basic認証をかけるには.htpasswdと.htaccessが必要です。WordPressの場合はすでに.htaccessがあると思いますので、追記でOKです。

.htpasswdを作成する

.htpasswdにはログイン時に利用するユーザーとパスワードを記述するのですが、パスワードは暗号化されている必要があります。.htpasswd 作成と検索すれば自動生成してくれるツールがたくさん出てきますのでそれを利用して作成するのが手っ取り早いのですが、理解を深めたいので自作します。

htpasswdコマンドで作成

sshを使える場合はサーバー上で直接作成できます。例はMacのターミナルで作成する方法です。.htpasswdを作成するディレクトリに移動し以下コマンドを実行すればOKです。

htpasswd -b -m -c .htpasswd user pass

userとpassは任意のものに変更してください。
コマンドのオプションについてはhtpasswd -hで英語ですが参照できます。今回利用したオプションは以下の通りです。

-b パスワードをコマンドラインから指定する。
-m パスワードがMD5で暗号化されます。
-c ファイルを作成します。

.htaccessの記述内容

続いて.htaccessへの記述です。ドキュメントルート直下の.htaccessを想定しています。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
AuthUserFile /パス/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
order deny,allow

<FilesMatch "\/?wp-admin|wp-login\.php">
require valid-user
</FilesMatch>

<Files wp-admin/admin-ajax.php>
Satisfy any
order allow,deny
allow from all
</Files>

wp-adminディレクトリとwp-login.phpにBasic認証をかけています。WordPressではプラグインでwp-admin内のadmin-ajax.phpを利用することがあるので除外しています。

ブルートフォースアタック対策に

ベーシック認証をかけているから万全ということはありませんが、手軽にできるセキュリティ対策です。少なくともブルートフォースアタックには効果があると期待しています。

WEBSITE DESIGN REQUEST

ホームページ制作依頼について

W・D・Sでホームページ制作をご希望の方はお気軽にご相談ください。
制作内容、ご予算、納期をお知らせいただくとスムーズです。

ホームページ制作を相談する