|
htaccess解説/アクセス制限(Referer)
ホームページへのアクセスには、遷移元の画面情報(Referer)が含まれています。 この情報のことをリファラ(referer)と言います。 (ブラウザのアドレス欄にURLを直接入力した場合などは情報は設定されていません) htaccessでリファラを判定することで、特定画面からのみアクセス制御を行うことが可能となります。 ただし、Refererは偽装も可能なため必ず正しい情報とは限りません。
実際に付加されている情報は、当社「 IPアドレス確認」サービスでご確認いただけます。
画像やjavascript、cssなどの直接アクセスを禁止する
ホームページ内の画像や外部Javascript、cssは、ブラウザにURLを入力することで、ホームページを通さずに直接参照することができます。 他のサイトからの画像リンクなどを停止したい場合にも利用することができます。
「.htaccess」ファイル この設定で、サーバー内の画像「.gif」「.jpeg」「.jpg」「.png」をhttp://www.example.jp以外からのアクセスを拒否することが出来ます。
SetEnvIf Referer "^http://www\.example\.jp" ok_url
<Files ~ "\.(gif|jpe?g|png)$">
order deny,allow
deny from all
allow from env=ok_url </Files>
| 構文 |
意味 |
| SetEnvIf Referer | Refererの条件を正規表現で記載します。
例は、「refererがhttp://www.example.jpで始まっている」の条件となります。 条件に該当するときに「ok_url」が真(true)となります。
ホームページ上にある画像などは、一度htmlが表示された後にホームページhtmlから自動で再度読み込みが行われます。このため、Refererにはホームページと同じURLが設定されています。 正規表現のエスケープが必要です。 |
| Files |
htaccessで対象とするファイル 正規表現のエスケープが必要です。 例は、拡張子「.gif」「.jpeg」「.jpg」「.png」を対象としています |
| order |
拒否と許可の見る順番を指定している allow:許可する、deny:拒否する 例は、「拒否(deny)」→「許可(allow)」の順に見る |
| deny | 「拒否」する条件を指定 例は、「from all」としてすべて拒否しています。 |
| allow |
「許可」する条件を指定 例は、「SetEnvIf Referer」で指定した条件に該当しているかを判定しています。 該当する場合に「許可」となります。 |
【注意事項】
- allowとdeny
orderの順番に注意してください。上記では「すべて拒否だけどallowで指定した条件に該当する場合は許可」となります。逆にした場合、「allowで指定した条件に該当する場合は許可だけど、やっぱりすべて拒否」となり、全てのアクセスが拒否されてしまいます。
- Referer
Refererは偽装が可能なため正確には判定できません。このため、正常なアクセスなのに拒否する可能性があります。
|
その他
|