0

I saw on many blogs and also on many answers here on SO that people do Hotlink protection by using this code:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

which is also suggested by this tool.

I might be wrong, but isn't it trivial to trick this code? Doesn't a scraper simply need to use a simple subdomains like these ones to bypass the hotlink protection?

http://mydomain.com.scarper1domain.com
http://mydomain.com.scraper2domain.net

EDIT: FYI I use this code that I think is more bulletproof, but i'm happy to read your comments/critics about it.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain\.com$ [NC]
RewriteRule .*\.(jpg|jpeg|png|gif)$ - [F,NC,L]
4

1 に答える 1

2

ほとんどのapacheセットアップは、example.comなどのリクエストをexample.com/に既にリダイレクトしているため、編集で3番目の条件を設定する必要はありません。したがって、コードは次のようになります

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain\.com/.*$ [NC]
RewriteRule .*\.(jpg|jpeg|png|gif)$ - [F,NC,L]

スクレーパーは、送信されるhttpヘッダーを偽造できるため、サブドメインを使用する必要はありません。これを防ぐ方法はありません。

残りのコードは問題ありません。必要に応じてこれを使用します。

于 2012-12-04T16:41:59.817 に答える