No Web Service No Life

クラウドソーシングサービス「ランサーズ」のプロデューサーです。Webサービスや構成要素(UIや技術)について書いています。

Apacheで特定のリファラからのアクセスを制限する


不正アクセスや攻撃を受けたりして、特定のリクエストを制限したいということが発生することがあります。


リファラを指定しての制限は、httpd.confに以下のように記述します。

<Directory /var/www/hoge>
    SetEnvIf Referer "http://example.com/" hoge
    Deny from env=hoge
</Directory>

SetEnvIf Refererの後は、制限対象のリファラ環境変数名を記述します。
Deny fromで、設定した環境変数名を指定することで、そのリファラからのアクセスを制限することが可能です。


設定後、Apacheを再起動しアクセスすると、403が返却されるようになります。
ログには以下のように出力されます。

client denied by server configuration: /var/www/hoge, referer: http://example.com/


Allow fromに記述することで、特定のリファラからのみのアクセスを受け付けることも可能です。

広告を非表示にする

最新のWebサービス・スマホアプリの情報が毎日メールで受信できるキュレーションサービス『Service Safari』を運営しています。
エンジニアを募集していますので、ご興味のある方はFacebookやTwitterからご連絡ください。