В качестве меры предосторожности против хотлинкинга я использовал следующее правило, чтобы перенаправлять людей с неправильным реферером на наш логотип вместо реального изображения:
#Naughty hotlinkers
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !sitedomain\.com [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule (.*) assets/hotlinked/logo.jpg [L]
Это хорошо работает для изображений.
Я нахожусь в процессе написания ужасного упаковочного кода, чтобы сохранить изображения, внедренные в контент нашего пользователя, а их src указывает на файл php, который использовался для фильтрации запросов и обслуживания наших изображений.Хотя новые изображения больше не будут обслуживаться таким образом, мы должны убедиться, что ранее загруженные изображения по-прежнему доступны по их старому адресу.
Хотя изображения по-прежнему должны быть доступны, этот файл должен быть защищен от хотлинкингаа также.
Я пробовал это:
#Naughty hotlinkers
RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$|.*gp2\.php.* [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !sitedomain\.com [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteRule (.*) assets/hotlinked/logo.jpg [L]
Но без кубиков.
Файл, который я хочу защитить, используется в src изображения, например:
http://sitedomain/legacy/gp2.php?p=long_stupid_string
Пожалуйста, расскажет мне гуру apache, что за глупость я здесь делаю неправильно?
Редактировать:
Я тестирую предотвращение горячих ссылок здесь:
(изображение) здесь
(php) и здесь