Как защитить свой сайт от хотлинка

Время чтения:4 минуты

Имея достаточно популярный сайт и вкладывая в него деньги, хочется быть уверенным, что ваша интеллектуальная собственность хорошо защищена и никто не будет использовать ее без вашего спроса. Но довольно часто встречается ситуация, когда вы платите фотографу деньги за работу, размещаете его работы у себя на сайте, а кто-то крадет фотографии к себе на сайт. Причем не просто копирует, а загружает их непосредственно с вашего сервера! Подобная практика называется хотлинк (hotlink).

Кроме очевидного ущерба в виде кражи вашей собственности, включение на веб-страницу файлов или изображений с вашего сервера, может перегрузить его доступные ресурсы. Особенно это актуально для сайтов, которые размещаются на виртуальных хостингах, где ресурсы ограничены. Также из-за этого вы будете платить за лишний исходящий трафик.

хотлинк.jpg

Как защититься?

Чтобы защитить от копирования свои изображения нужно всего лишь дописать несколько строчек в файле конфигурации веб-сервера или в файле .htaccess (конфигурационный файл веб-сервера Apache, позволяющий управлять работой веб-сервера и настройками сайт):

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://(www\.)?site.ru/ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://othersite.ru/noimage.png [NC,L]

Для файла конфигурации веб-сервера nginx.conf или его аналога следует добавить:

location ~* ^.+\.(jpg|jpeg|gif|png)$ {
root /path/to/root;
valid_referers none blocked server_names ~\.server1\. ~\.server2\.;
if ($invalid_referer) {
rewrite ^ /noimage.png last;
}
}
location /noimage.png {
root /path/to/badreferer;
}

В таком случае, если на сервер поступит запрос на изображение, произойдет проверка этого запроса. Если он поступил внутри вашего домена, то все пройдет как надо, картинка загрузится нужная. Но если запрос идет с другого домена, то вместо вашей картинки покажется изображение noimage.png. В качестве noimage.png вы можете загрузить все что угодно, хоть высказать свои мысли по поводу воровства.

Совет: noimage.png лучше размещать не на вашем домене, а где-то в другом месте. Если вы все же хотите разместить ее у себя, то тогда в .htaccess следует добавить такую строчку:

RewriteCond %{REQUEST_URI} !noimage\.png$ [NC]

Если этого не сделать, то он сам попадет под запрет на копирование.

Данный способ самый простой и универсальный для защиты изображений от незаконного воровства. На некоторых CMS можно автоматически добавить защиту с помощью специальных плагинов.

Связаться с нами

Нажимая на кнопку "Отправить" вы соглашаетесь с политикой обработки данных!