20131103-154155.jpg

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

3 ноября 2013 40 2

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

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

CodeCanyon: Лучшие плагины для WordPress
CodeCanyon: Лучшие плагины для WordPress

Данная проблема решается очень просто с помощью нескольких строк в файле конфигурации веб-сервера или в файле .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 или любой другой ему подобный.

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

Практикующий веб-разработчик, специализируюсь на платформе WordPress.

Комментарии
  • Олег Фотодело

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

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

    для того чтобы скрыть картинки в коде нужно добавить в фаил .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. Главное — не внутри.

Разгоните свой WordPress

Хостинг-провайдер номер один в России — REG.RU

Подробнее