Как защититься от хотлинкинга изображений в WordPress

Дата публикации:Январь 16, 2016

Хотлинкинг – одна из распространенных причин утечки ресурсов для большинства сайтов, не говоря уже о том, что в техническом плане это является воровством контента. Многие хотлинкеры просто не понимают, в чем заключается основная проблема.

hotlink

Что представляет собой хотлинкинг изображений?

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

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

Возможно, это покажется вам чем-то вторичным и незначительным, однако это может привести к дополнительным тратам для вас. В качестве примера можно привести сайт The Oatmeal. Издание The Huffington Post решило вставить ссылки на комикс, состоящий из нескольких изображений с этого сайта. А поскольку мы говорим о достаточно крупном новостном портале, можно понять, какие затраты понесли владельцы The Oatmeal.

В итоге Мэтью Инман, создатель The Oatmeal, был вынужден заменить все картинки, на которые были проставлены ссылки, следующими изображениями:

hotlinking

Последнее изображение демонстрировало рисованные член и задницу.

Как защититься от хотлинкинга изображений

Есть несколько способов защитить себя от хотлинкинга.

С помощью htaccess

Все, что понадобится сделать в этом способе – это открыть файл .htaccess в корневой директории вашего сайта и добавить в него следующий код:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://dropbox.com/hotlink-placeholder.jpg [NC,R,L]

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

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

С помощью плагинов для WordPress

Есть несколько WordPress-плагинов, посвященных хотлинкингу, однако многие из них не слишком хорошо поддерживаются или имеют негативные пользовательские описания.

Я предлагаю вам обратить внимание на All In One WP Security And Firewall, который является прекрасным плагином, имеющим встроенную возможность защиты от хотлинкинга.

С помощью переименования файлов

Первые два метода работают только в том случае, если вы хостите свои картинки локально. В противовес этому вы можете воспользоваться облачным сервисом, таким как Amazon S3. Более простой метод – обычное переименование файлов. Это удобно, если некоторый источник (или несколько источников) вдруг проставил ссылки на какое-либо ваше изображение.

Вы можете переименовать файл на Amazon S3 или сменить ссылку на вашем сайте, в результате чего хотлинкеры увидят на своем сайте 404-ошибку вместо изображения.

Этот метод удобен, однако он неприменим в случае с масштабным хотлинкингом.

С помощью политики доступа к ресурсам

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

С помощью параметров cPanel

Если у вас установлена панель cPanel, вы можете использовать встроенный инструмент защиты от хотлинкинга. Изучите документацию cPanel для получения дополнительной информации. Все делается очень просто – достаточно лишь включить одну настройку.

Заключение

Если вы агрегируете контент на своем сайте, не ссылайтесь на изображения напрямую – лучше просто оставьте ссылку на искомый сайт. Тем самым вы сможете поддержать его автора. Хотлинкинг – та сфера, с которой очень просто бороться.

Источник: https://kinsta.com/blog/how-to-prevent-image-hotlinking-in-wordpress/

22 комментария

  1. BaNru says:

    Самое глупое, что можно было придумать — защита от хотлинка:
    1) Если у пользователя будет стоять запрет передачи реферера, то он будет постоянно видеть жопы. И число таких пользователей сейчас растёт. Пусть единицы, но тенденция есть. В том числе разные анонимайзеры, VPN и ТОРы.
    2) Возможно проблемы с поиском картинок через поисковики. То есть сразу минус определенный трафик. Тут конечно можно их добавить в разрешенные, но всех правильно не добавишь.
    3) Если люди используют картинки у себя на сайте, то они автоматически несут полезную нагрузку, поисковики это ценят. Это равнозначно ссылкам с чужих ресурсов. Пусть меньший вес, но он есть. Нельзя этого недооценивать.
    4) Если человек по незнанию вставит, допустим, вашу картинку на форуме или в соц.сети, захочет поделиться понравившейся картинкой — то там может быть тоже жопа. Этот пользователь скорее всего больше не пойдет на ваш сайт.

    Думаю ещё есть много причин, почему эта защита — плохая идея.
    Если человек себе враг, то он будет пользоваться этими советами и стрелять себе в ногу, лишаясь части трафика и СЕО продвижения.

    Если у человека такая сильная паранойя, то есть лучше два совета
    1) В htaccess поставить всем deny from all, чтобы никто не видел ничего на сайте и не смог «своровать»!
    2) Удалить сайт из интернета и разместить его на локальной машине. Никто не сможет видеть ваш сайт и следовательно ничего «не сворует», а вы сможете им любоваться в любое время!

    • Дмитрий says:

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

      • BaNru says:

        Глупости. Серверные ресурсы ничтожны. Не забываем, что это статика, а постоянная обработка правил .htaccess или других способов будет по ресурсам столько же, если не больше.

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

        Я не знаю таких, кто сейчас бьётся за каждый мегабайт, особенно если это новостной ресурс, то там терабайтами трафик насчитывается. А каналы у них гигабитные. И, если говорить про новостные ресурсы, то я не встречал таких, которые борются с хотлинками. Если ты знаешь такие, то думаю для их перечисления хватит пальцев одной руки.

        Я уж не говорю, что есть хостинги картинок, которые этим живут припеваючи.

        А вот прямое «воровство», а именно кто-то начнет к себе заливать картинки без хотлинков — принесёт «вору» (ворам) больше пользы и тут начнутся реальные потери возможного трафика. (мозг копираста с их логикой тут должен взорваться)

        • BaNru says:

          Дмитрий, что тупого спамера не банишь?

          • Дмитрий says:

            Хм, по поводу обработки правил htaccess и выдачи статики — интересно было бы сравнить по ресурсам. Нигде не встречал такого сравнения. Думаю, что выигрыш там минимальный, если вообще есть, да и в случае с огромным количеством изображений вряд ли так уж кардинально вырастет. Скорее всего, будет болтаться в районе максимум 1%.

            Интересно, почему тогда тот чел из примера в статье «завыл», когда сайт разместил его изображения. Мог бы спокойно купаться в лучах славы.

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

            Также хочу отметить, что трафик с изображений очень низкий. От основного трафика он составит где-то максимум 2-3%, а то и меньше. Конечно, все зависит от тематики ресурса — где-то по картинкам вполне возможно, что трафик в разы выше. Но это не мой случай).

            • Дмитрий says:

              Спамеров баню редко, обычно просто редактирую их ник, куда они пихают ключевые слова. Ну или убираю URL. Для поисковиков — видимость обсуждения статьи. Хотя, конечно же, пользы от их комментариев очень мало.

              • Дмитрий says:

                Вот еще, к слову говоря, недостаток хотлинкинга: если автор уберет картинку, то и материал на другом сайте может оказаться бессмысленным, картинки нередко несут очень важные сведения.

  2. BaNru says:

    > Хм, по поводу обработки правил htaccess и выдачи статики
    1) Многие вешают статику на nginx, а он вроде как быстрее с ней работает.
    2) Не забывай, что правила htaccess будут работать на каждом запросе, каждый запрос будет проверяться условиям. И даже если учитывать, что это 0.0001%, то на большом количестве запросов — это будет существенно. Как ты сам говорил про подсчет мегабайтов.

    > Интересно, почему тогда тот чел из примера в статье «завыл», когда сайт разместил его изображения. Мог бы спокойно купаться в лучах славы.

    Не читал про завыл, не искал его, по ссылкам не ходил. Но вариантов может быть много. Самый явный вариант — у него было посетителей 10 в день, а тут ссылку на его картинку поставил какой-нибудь Реддит или более крупный с лямом запросов в час. И сработал «сайтоэффект» (как хабраэффект если понимаешь о чем речь). Вот он и взвыл. Но в статье не обсуждается обратная сторона, какую пользу это принесло.

    Если такое произошло единоразово (то есть 1-10 картинок таких, но трафик постоянный), то тут надо поступить разумнее, а именно:
    Вариант 1) переместить картинку на отдельный сервер, хостинг, если есть возможность.
    2) Переместить картинку на любой хостинг картинок и сделать прямой 301/302 редирект.

    Про лучи славы мы не знаем и уже не можем узнать, верно?

    > Сайты с запретом на хотлинкинг мне встречались.

    Мне тоже встречались и встречаются. Но это редкие случаи и явно не крупные новостные сайты. И как ты заметил далее, что трафик низкий, но исключения именно файлопомойки картинок, типа «сайты обоев». Там такое постоянно встречается. Таким ресурсам конечно надо защищаться от хотлинков. Но контент у них на 99.999% не уникальный, а ворованный. Воры защищаются от воров. Равно как и сайты с фильмами.

    Кстати, вот реальный пример: ВК защищает видео от хотлинков, а картинки нет.

    Вот в случае с сайтами картинок, если есть задача защитить, то правильным решением будет на жопу ставить, а выдавать low версию картинки с водяным знаком сайта или адресом до картинки (лучше коротким). Такое решение будет намного правильнее, разумнее и приятнее людям.

    • BaNru says:

      > Вот еще, к слову говоря, недостаток хотлинкинга: если автор уберет картинку, то и материал на другом сайте может оказаться бессмысленным, картинки нередко несут очень важные сведения.

      Ну так тут пострадает именно «вор». Это уже его проблемы будут.

      • BaNru says:

        > Мне тоже встречались и встречаются

        Кстати, очень часто как раз встречаются в гугл картинках.
        Жмешь на картинку «открыть в полном размере», а там её нет или надпись, как я говорил типа «перейдите на сайт для просмотра».

        Второй вариант конечно раздражает, но можно вернуться в гугл и нажать «показать на сайте», ибо просят, а в первом варианте непонятно бывает — удалена она с сервера или нет.

        Но в обоих случаях доставляет неудобство.

        • Дмитрий says:

          > Жмешь на картинку «открыть в полном размере», а там её нет или надпись, как я говорил типа «перейдите на сайт для просмотра».

          Было подобное тоже неоднократно.

          Подведу некоторые итоги:

          1. Защищаться от хотлинкинга можно, но не обязательно, поскольку это вряд ли сильно нагрузит сайт.

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

          3. Если хочется прямо кардинально обезопасить себя, то в таком случае подойдут советы, описанные в статье.

          BaNru, большое спасибо за дополнения к статье и обсуждение!

          • BaNru says:

            В виду полного отсутствия противоположной стороны — прочитав статью все, кто не в курсе, побегут защищаться и выстрелят себе в ногу.

            Поэтому первый пункт должен звучать:
            1) Вы можете защититься, но подумайте 100 раз, прежде чем заниматься этим бесполезным и вредным делом.

            • Дмитрий says:

              Будем надеяться, что у людей присутствует критическое мышление и они умеют рассуждать и делать выводы, а не просто повторять то, что указано в статье :)

  3. Onion says:

    Чем больше пользы приносит сайт людям, тем больше на него посещений. Защищаясь такими способами, вы снижаете нагрузку, но так же не даете обычным юзерам делится картинками с вашего сайта напрямую, то есть им нужно перезаливать картинку и это так же негативно сказывается на посещаемости, человек просто найдет другой сайт и все.

    Если конечно идет прямое воровство, то с этим реально несложно бороться, одна абуза и все становится на свои места.

  4. Андрей says:

    Как всегда, некторые забывают, что не одним SEO жив человек.. Многим он ВООБЩЕ не нужен (не всем нужен именно ПОТОК бесполезных посетителей и не все клиентов берут из интернет, а вот инфу удобно размещать на сайте)… Трафик из-за картинок может вырасти ОЧЕНЬ сильно, особенно если картинка (например подробная схема) оптимизирована блондинкой.. Если такую картинку тырят и копипастят (а такой нераскрученный сайт — находка для копипастера), то какой-нибудь копеечный (или даже бесплатный) хостинг вполне себе может нагнуться и хостер попросит перейти на тариф подороже.. Хозяину сайта такой шаринг ну вообще ничерта не принесет кроме дополнительных затрат.. Вопрос важный, но приемлемого решения для себя я в ней не обнаружил (не везде htaccess и вкорячивать в сайт All in One плагин только из-за этого тоже глупо)..

    • BaNru says:

      Я же выше озвучил — любой хостинг картинок, те же яндекс фотки. Или друпбокс. Вариантов море.

      Но защита от хотлинков — бессмысленная. Если не ты зальёшь, то другие зальют. Но куда лучше быть первоисточником! Через те же гугл/яндекс картинки ты будешь первым и вероятно будешь иметь не бесполезных посетителей, а целевую аудиторию.

  5. Всегда на своем сайте в правом нижнем углу картинки ставил урл сайта. Благо он короткий. И виден источник и я не парюсь.

  6. is axtar says:

    Я использовал на своем блоге Гугл драйв для хранении фото. загрузил их туда и на сайте вставлял со ссылкой. и не думал про хотлинкинг.

  7. Извиняюсь, не в тему влезу.. Просто чую, что здесь мне смогут что-то подсказать))
    Волнует вопрос правильного умышленного хотлинкинга (правильно назвала?)… Скажем, есть два сайта (оба на WP на одном аккаунте у одного хостера), часть изображений на них дублируется и, выходит, почем зря занимает лишнее место… Просто конечно — копировать код со страницы одного сайта на другой.. Но при этом что-то менять в уже существующих галереях — не представляю как.. Может есть какой-то способ скрестить «uploads» двух сайтов?

    • Дмитрий says:

      Обычно это делают уже с помощью мультисайтов. Там можно сделать общие uploads. Но там сложнее настраивать домены.

  8. Спасибо, раньше сам так делал, по незнанию, но сейчас все изображения парку на своем блоге

  9. Оставлять небольшой логотип своего портала на каждом вашем изображении — мне кажется это лучший вариант. Конечно, если портал крупный и копий много, то трафик может влететь в копеечку, но даже кинопоиск разрешает вставлять свои изображения :)

Оставить комментарий

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