外部からの.htaccessファイルへのアクセスを404で拒否するには

Apacheでは外部から.htaccessファイルへのアクセスがあるとデフォルトで403(Forbidden)を返すようになっています。

これでも一応、.htaccessファイルを保護できていますが、403コードだと、ファイルへはアクセスできないものの、ファイルがそこに存在するということを攻撃者に推測されてしまいます。

なので、403ではなく404を返して、ファイルが存在しないかのように見せかけたい。

httpd.confに以下のように記述すれば404で応答するようになります。


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/\.htaccess /your/path/to/404.html
</IfModule>

以上。

2014/10/30 追記
上記の方法だと確かに指定したエラーページを返しますが、レスポンスのステータス自体は200でした。。。
あんまし意味ないじゃん!
ので、以下のように変更しました。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/\.htaccess - [R=404,L]
</IfModule>

これならレスポンスのステータスも404になります。
以上。

Leave a Reply

Your email address will not be published.