プログラミング備忘録 foo

リファラーチェックで直接アクセス・直リンクを禁止

目的

  • 自サイトの特定のファイルに対し、他サイトからの直接アクセス・直リンクを禁止にしたい。

解説

  • 主にサーバー負荷を無くすために使います。この禁止措置をしないと、他サイトで自サイトの画像・動画が直リンクで表示可能になるのでサーバーに負荷がかかってしまいます。
  • 直リンクによる無断転載の防止にもなります。アダルトサイトや何らかの悪意があるページへの掲載など、意図しない形で画像・動画が他サイトで直リンク表示される事も防げます。

.htaccess

Order Deny,Allow
Deny from all

SetEnvIf Referer "^https?://note-book\.foo" allowed_access
Allow from env=allowed_access
  • 直接アクセス・直リンクを禁止したいフォルダーに上記の.htaccessを置きます。動画にこの禁止措置を講じる場合、動画を置いている場所がhttps://note-book.foo/video/ならvideoフォルダーに上記の.htaccessを置きます。
  • wwwありの場合は4行目をSetEnvIf Referer "^https?://(www\.)?note-book\.foo" allowed_accessと書きます。
  • 直前にどのページを見ていたかを確かめるのがリファラーチェックです。自サイトのドメインを指定する事で自サイトからの流入と判定されて、自サイトで動画が表示されます。もしリファラーチェックをせずDeny from allと1行だけの構文にすると全てのアクセスが禁止されるので、自サイトでも表示されなくなってしまいます。