khipster
@khipster

Как запретить скачивание файла с других сайтов?

Достаточно ли проверять HTTP_REFERER? Я так понимаю самое надёжное это генерировать токен как при защите от XSRF. Вообще цель просто не расходовать трафик.
  • Вопрос задан
  • 1179 просмотров
Пригласить эксперта
Ответы на вопрос 3
kawabanga
@kawabanga
Для большинства запросов, да, достаточно.

www.proofsite.com.ua/article-2242.html
Options +FollowSymlinks
#Запрещаем загрузку файлов с внешних сайтов
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]


Вообще от картинок не должно быть много траффика...
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
1) вставить на другие не получится
2) скачать - получится, реферер легко подделывается, и вообще - защита срабатывает на левый реферер, например, на отсутствие может и не рабоать

вынесите картинки на сабдомен и сабдомен засуньте в cloudflare, будет вам экономия
так можно и видики хостить даже
Ответ написан
Комментировать
vahe_2000
@vahe_2000
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]
RewriteRule .+\.(gif|jpg|png)$ - [F]


Как только вы закончите выполнять все операции копирования любой браузер , запрашивающий изображения с вашего сайта использующий при запросе URL, начинающийся с имени домена, отличного от www.example.com или example.com , будет получать ошибку "403 Forbidden". что остановит использование ссылок на ваши изображения на других сайтах.

  1. RewriteEngine on - включаем механизм mod_rewrite
  2. RewriteCond %{HTTP_REFERER} !^$- RewriteCond является еще одной директивой mod_rewrite. Она позволяет устанавливать условие, которое должно выполняться для обработки URL следующим за ним правилом RewriteRule . В данном случае условием является наличие значения в переменной HTTP_REFERER.
  3. RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC] - вторая директива RewriteCond требует, чтобы значение переменной HTTP_REFERER не начиналось с www.example.com или example.com . Флаг [NC] устанавливает чувствительность к регистру символов.
  4. RewriteRule .+\.(gif|jpg|png)$ - [F] - если два выше предыдущих условия RewriteCond не выполняются, то правило пропускается. Само же правило возвращает ошибку "403 Forbidden" (используется флаг [F]), если URL содержит имя файла изображения (строка заканчивается на .gif, .jpg или .png), Тире в параметре подстановки означает "не надо заменять URL другим адресом".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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