.htaccessと.htpasswdを第三者に見られないようにする方法

ブラウザで中身が見える場合

ブラウザで中身が見える場合

ウェブサーバの設定が記述された.htaccessファイルや、認証用のユーザー名(ID)とパスワードを記述した.htpasswdファイルは、第三者には見られない方が望ましいファイルです。

ウェブサーバによっては、これらのファイルは直接URLを指定してアクセスしても、最初から表示されない設定になっている場合もあります。もし、そう設定されておらず、直接ブラウザでアクセスすると中身が見えてしまうなら、見えないように設定しておきましょう。

ブラウザからの閲覧を拒否する設定方法
.htaccessと.htpasswdの2ファイルをウェブ上で閲覧できないように設定するには、.htaccessファイルに以下の3行を追記します。
<Files ~ "^\.ht">
   deny from all
</Files>
.htaccessに追記

.htaccessに追記

上記の3行を.htaccessファイルに記述しておくと、.htaccessや.htpasswdなど「.ht」で始まるすべてのファイルへのアクセスが拒否されます。

※ここで拒否されるのはブラウザなどを使ったウェブ上での閲覧だけであり、Basic認証の機能には影響しません。

 
.htpasswdファイルの中身が第三者に見られても、パスワードはハッシュ化されていますから元のパスワードが判明するわけではありません。しかし、絶対に判明しないというわけでもありません(※)。また、ユーザー名はそのまま含まれているため知られてしまいます。したがって、見えないように隠しておく必要があります。

※例えば、自分が過去に「goma」というパスワードをハッシュ化して「Z9hdKWeuMi7jI」という変換結果を得ていたとします。たまたま閲覧できた第三者の.htpasswdファイル内にも同じ「Z9hdKWeuMi7jI」があれば、パスワードは「goma」なのだと分かってしまいます。

そもそもブラウザから閲覧できない場所に置く方法
上記の3行を.htaccessファイルに追記する以外に、そもそもブラウザから閲覧できない場所に置く方法もあります。

仮にお使いのウェブサーバで /home/user/www/ ディレクトリ以下がウェブとして公開される仕様なら、例えば /home/user/pw/ というディレクトリを作成しておいて、そこに.htpasswdファイルを置きます。この方法なら、.htpasswdファイルはウェブ上には存在しないことになるため、ブラウザからは閲覧しようがありません。

 

Basic認証を使って、ユーザー名(ID)とパスワードによるアクセス制限をかける方法

Basic認証でアクセス制限

Basic認証でアクセス制限

今回は、ウェブサーバの設定ファイルである.htaccessファイルを利用することで、Basic認証を使ってアクセス制限を設定する方法をご紹介いたしました。

特定のユーザーだけにアクセスを許可する会員制ウェブサイトを作りたい場合や、テストサイトを関係者だけで閲覧したい場合など、アクセスできる閲覧者を制限したい場合にぜひ活用してみて下さい。

 
なお、アクセス制限に関係する解説としては、以下の関連記事もぜひご参照下さい。

 
【関連記事】

※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。