ようこそゲストさん

Magical Diary, beta version

[Apache] 画像への直接リンクを防ぐ (補足)

2007/07/28 23:45 HIRATA Yasuyuki

画像への直接リンクを防ぐ (2007/07/23) の補足。

RFC 2616 で Referer: は以下の通り定義されており、絶対URIの他、相対URIを含めることも許されている。

Referer = "Referer" ":" ( absoluteURI | relativeURI )

RFC 2616: Hypertext Transfer Protocol (HTTP/1.1), 14.36 Referer

したがって、

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www\.example\.jp/ [NC]
RewriteCond %{REQUEST_URI} !^/tmp/eroero\.gif$
RewriteRule \.(jpg|png|gif)$ http://www.example.jp/tmp/eroero.gif [R,NC]

は、下記の通りとするべきである。

RewriteCond %{HTTP_REFERER} ^http://
RewriteCond %{HTTP_REFERER} !^http://www\.example\.jp/ [NC]
RewriteCond %{REQUEST_URI} !^/tmp/eroero\.gif$
RewriteRule \.(jpg|png|gif)$ http://www.example.jp/tmp/eroero.gif [R,NC]

なお、(アンチウイルスソフトによっては) Referer: に blocked by XXXX とかいう訳のわからん文字列を突っ込んできます との指摘があったが、今回の修正で救われる。とはいえ、これはRFCに違反するそのベンダと利用者の責任であるため、積極的に救う必要は無いだろう。


#  非公開コメント   

  • TB-URL(確認後に公開)  http://diary.asuka.net/026/tb/
© 2007 HIRATA Yasuyuki <yasu@asuka.net>, all rights reserved