Webサイトの運用では、公開するつもりのないファイルがサーバー内に置かれていることがあります。たとえば設定ファイル、バックアップファイル、メモ書き用ファイルなどです。
これらのファイルにブラウザから直接アクセスできる状態になっていると、思わぬ情報漏えいにつながるおそれがあります。そこで役立つのが、.htaccessを使って特定ファイルへのアクセスを禁止する設定です。
この記事で分かること
ホームページとして公開しているファイル以外にも、サーバー上には運用上必要なファイルが置かれていることがあります。しかし、そのすべてを外部に見せてよいとは限りません。
とくに設定内容を含むファイルや、古いバックアップファイルが残っている場合は注意が必要です。リンクしていなくても、URLを直接入力されることで開かれてしまうことがあります。
| ファイルの例 | 注意したい理由 |
|---|---|
| .htaccess | サーバー制御の設定内容が含まれるため、見せないほうが安全です。 |
| .htpasswd | 認証情報に関わるため、外部公開は避けるべきです。 |
| backup.zip | サイト一式のバックアップが入っていると非常に危険です。 |
| config.php.old | 旧設定ファイルに接続情報などが残っている場合があります。 |
本来は、外部公開したくないファイルをWeb公開領域の外に置くのがより安全です。ただし、レンタルサーバーの運用や構成上、それが難しい場合もあります。
そのような場合に、.htaccessで「直接アクセスされたときだけ拒否する」設定を入れておくことで、外から見られるリスクを下げることができます。
.htaccessによる制御は有効な対策ですが、機密性の高いファイルはできるだけ公開領域の外へ置く方法もあわせて検討してください。
ファイル名が決まっている場合は、その名前を指定してアクセスを禁止できます。たとえば .htaccess そのものを見られないようにしたい場合は、次のように記述します。
<Files ".htaccess"> Require all denied </Files>
この設定により、.htaccess という名前のファイルへ直接アクセスされたときに拒否されます。
ほかにも、.htpasswd や特定のバックアップファイルなど、見せたくないものがある場合は同じように追加できます。
<Files ".htaccess"> Require all denied </Files> <Files ".htpasswd"> Require all denied </Files> <Files "backup.zip"> Require all denied </Files>
このように書くことで、指定したファイルごとにアクセスを拒否できます。対象が少ない場合は、この書き方が分かりやすくて扱いやすいです。
バックアップファイルや一時ファイルが複数ある場合は、拡張子でまとめて制限したくなることがあります。ただし、環境によって書き方や運用の影響が変わるため、初心者の方はまず「ファイル名を個別指定する方法」から始めるほうが安全です。
たとえば、古いファイル名の末尾に .bak や .old が付いているようなケースでは、それらを公開領域に置かないこと自体が大切です。
拡張子単位で一括制御すると、必要なファイルまで誤ってブロックしてしまう場合があります。まずは個別指定で確実に動作を確認する方法がおすすめです。
Basic認証で使う .htpasswd は、可能であれば公開ディレクトリの外に置くのが基本です。やむを得ず近い場所に置く場合でも、直接アクセスされないようにしておくことが大切です。
<Files ".htpasswd"> Require all denied </Files>
ただし、.htpasswd の設置場所はサーバー仕様にも関わるため、保存場所そのものも見直せるなら見直したほうが安心です。
通常は、対象ファイルが置かれているディレクトリ、またはその上位ディレクトリの .htaccess に記述します。上位ディレクトリに書いた場合、その配下にも影響することがあります。
サイト全体で共通して守りたいファイルがあるなら上位に、特定フォルダだけで使うならそのフォルダに置く、という考え方で進めると整理しやすいです。
設定したあとは、対象ファイルのURLにブラウザで直接アクセスして確認します。正常に設定できていれば、内容は表示されず、403 Forbidden などの拒否画面になります。
もし普通に表示される場合は、記述場所・ファイル名・記号の打ち間違いなどを見直します。
作業前には既存の .htaccess を必ずバックアップし、変更は1か所ずつ確認しながら進めると安全です。
.htaccessを使えば、特定のファイル名を指定して直接アクセスを禁止できます。設定ファイルやバックアップファイルなど、公開不要なものを守る基本対策として役立ちます。
まずは .htaccess や .htpasswd のような重要ファイルから見直し、必要に応じて個別ファイルも保護していく流れにすると進めやすいです。
WISNET / わいずねっと のレンタルサーバー
用途に合わせて2つのレンタルサーバープランをご用意しています。