Домены
Интересные статьи
Домены

Защита изображений от 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

Обо мне cyber01

Прочитайте также

Как установить Zend Framework на Ubuntu 18.04

Zend Framework 3 это последняя версия фреймворка. Новая версия отличается большей производительностью. Zend это фреймворк …

apache

Как установить Apache Maven в Fedora 28/29/30

Apache Maven это фреймворк для автоматизации сборки проектов на основе описания их структуры в файлах …

Как обновить библиотеку ICU и PHP intl в CentOS 7/Ubuntu/Debian

Недавно столкнулся с такой проблемой: после переноса проекта с сервера (Debian) на другой сервер (CentOS) …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *