Найти тему
БЛОГ CYBER01

Защита изображений от hotlinking с помощью Apache

А что же такое hotlinking? Он используется, если я захожу загрузить какое-либо изображение напрямую с другого сайта. К примеру, в качестве изображения к этой записи я могу взять прямую ссылку на изображение логотипа Apache и вставить в запись, это и будет hotlinking. Ниже я расскажу, как устроена защита изображений от hotlinking с помощью Apache.

Для защиты изображений мы будем использовать .htaccess файл.

Отключение hotlinking изображений

Добавьте следующие правила в .htaccess файл. С помощью них вы заблокируете все запросы к изображениям, которые идут не от вашего домена. Проверка осуществляется по Referrer.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.+\.)?example.com [NC]
RewriteRule \.(jpe?g|png|gif|bmp|tif|svg|webp)$ - [NC,F,L]

Вы также можете показывать вместо этих изображений соответствующий баннер, о неправомерности использования изображений. Сделать это можно с помощью следующих правил.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(.+.)?example.com [NC]
RewriteRule .(jpe?g|png|gif|bmp|tif|svg|webp) http://example.com/banner_block.png [R,L]

Отключение hotlinking изображений для определенных доменов

Иногда бывает нужно заблокировать hotlink только для определенных доменов, поэтому нужно изменить наше правило. В данном случае мы запрещаем hotlinking для доменов site1.example.com и site2.example.com

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^https?://(.+\.)?site1\.example\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://(.+\.)?site2\.example\.com [NC,OR]
RewriteRule \.(jpe?g|png|gif|bmp|tif|svg|webp)$ - [NC,F,L]

Подробнее о файлах .htaccess вы можете найти на официальном сайте Apache: https://httpd.apache.org/docs/2.4/howto/htaccess.html

Статья написана для моего блога: https://cyber01.ru/zashhita-izobrazhenij-ot-hotlinking-s-pomoshhyu-apache/

С подпиской рекламы не будет

Подключите Дзен Про за 159 ₽ в месяц