Как предотвратить использование горячих ссылок (“отображают воровство” / “воровство пропускной способности”) ресурсов на моем сайте?

Не входя в детали, мои 0,02$ - Вы, не получит высокую доступность, если Вы не покупаете другое блейд-шасси, потому что это - единая точка отказа. И вероятно помещенный это в другую стойку.

8
задан 15 August 2011 в 23:47
5 ответов

Независимо от того, что вы делаете, вы будете «тратить» циклы ЦП (чтобы определить, авторизован ли сайт реферера (тот, который выполняет связывание) или нет, вы должны выполнить некоторую обработку данных запроса) .
Единственное, что вы можете сделать, - это сэкономить полосу пропускания, потратив минимум циклов процессора.

В документации Apache есть несколько примеров, которые делают именно то, что вы хотите. Этот:

SetEnvIf Referer example\.com localreferer
<FilesMatch \.(jpg|png|gif)$>
Order deny,allow
Deny from all
Allow from env=localreferer
</FilesMatch>

кажется наиболее подходящим (и не требует полного веса mod_rewrite).
Вы можете добавить дополнительные действующие рефереры с помощью дополнительных директив SetEnvIf и Allow .

9
ответ дан 2 December 2019 в 22:56

Как насчет того, чтобы писать правило, которые, если ссылающийся домен неизвестен (запрещенных), просто называют файл Php, куда Вы передаете изображение как параметрический усилитель, и в файле Php, просто вставляют большой красный: "этот файл прибывает из MYWEBSITE.COM и не имеет никакой официальной авторизации, которую покажут здесь".

Что касается Вашего вопроса, сделайте свое правило глобальным. Исправьте меня, если я буду неправ, но если правило будет объявлено то перед любым vhost оно будет применено на весь vhost (вид "правила по умолчанию").

И другая идея проста: просто перенаправьте в файл Php (здесь filter.php) который посмотрит в авторизованном веб-сайте и возвратит необходимый файл, если все будет в порядке:

RewriteRule /(.*)\.jpg$ /filter.php?im=$2\.jpg [QSA,L]

В filter.php просто загрузите динамично список vhost или чего-то как этот:

if (isset($_SERVER['HTTP_HOST'])) {
   if ((mb_ereg('thereferers\.I\.HATE\.com',HOST) !== false) ) {
       ... your code ...
   }
}
3
ответ дан 2 December 2019 в 22:56

question 1:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+)?yoursite.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*.(jpe?g|gif|bmp|png)$ - [F]

question 2:

yes

question 3

I'd use my one

0
ответ дан 2 December 2019 в 22:56

Или использовать CoralCDN и разрешить народным горячим ссылкам сколько душе угодно?

-1
ответ дан 2 December 2019 в 22:56

Cloudflare может вам немного помочь: http://www.cloudflare.com

Однако это работает только для изображений, но, похоже, это то, что вам нужно.

Защита от горячих ссылок

Автоматически включать защиту от горячих ссылок для ваших изображений, чтобы не допустить внешних ссылок. Рефералам, которые не находятся в зоне и не пусты, будет отказано в доступе. Поддерживаемые расширения файлов: gif, ico, jpg, jpeg и png.

Защищено: http://mydomain.com/images/pic.jpg Чтобы обойти: http://mydomain.com/images/hotlink-ok/pic.jpg

1
ответ дан 2 December 2019 в 22:56

Теги

Похожие вопросы