Защита изображений сайта от хотлинка

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


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

Данная проблема решается очень просто с помощью нескольких строк в файле конфигурации веб-сервера или в файле .htaccess.

Допустим, ваш сайт имеет адрес domain.com.

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

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

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

То же самое касается, к примеру, баннеров, которые вы целенаправленно отдаете со своего сайта для открутки на других ресурсах.

RewriteCond %{REQUEST_URI} !banner1\.gif$ [NC]
RewriteCond %{REQUEST_URI} !banner2\.gif$ [NC]

Иначе они тоже могут попасть под запрет от хотлинка.

Это далеко не самое полное и идеальное решение защиты от хотлинка. Оно скорее самое элементарное и самое универсальное. Владельцы сайтов на WordPress могут вообще не заморачиваться с кодом и установить, например, плагин Hotlink Protection или любой другой ему подобный.

Больше полезных материалов по веб-разработке на моем канале в Телеграм.
Обязательно подпишитесь.

Иван Данилин
Автор Иван Данилин

Делаю сайты на Вордпресс с 2008 года, в том числе уникальные инструменты для решения сложных бизнес‑задач.

Комментарии
  1. Здравствуйте Иван. Случайно наткнулся на Ваш сайт. Для себя нашёл много полезной информации. Впитываю как «губка». Большое спасибо что делитесь информацией и своими знаниями.

    Вопрос по теме:

    для того чтобы скрыть картинки в коде нужно добавить в фаил .htaccess. — 3 строчки. Подскажите если уже имю вот такой вид в нутри файла:

    # BEGIN WordPress


    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ — [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]


    # END WordPress

    Что мне следует добавить а что оставить?

    Заранее благодарю.
    • Добрый день, Олег! Благодарю за отзыв. Без особой разницы: перед # BEGIN WordPress или после # END WordPress. Главное — не внутри.
Добавить комментарий