Переход к предыдущей публикации Уязвимости в функции ktimer и системном вызове kenv на FreeBSD 7.x Защищаем wp-comments-post.php с помощью Simple Captcha. Akismet отдыхает Переход к следущей публикации

Продолжаем бороться с хотлинками в Wordpress | 2 часть

Четверг, 2 апреля, 2009 16:03:05 EEST

Исправления от 21 апреля, 2009 01:08:21

Выделенные сервера дешевле обычного хостинга

Продолжаем бороться с хотлинками в Wordpress | Продолжение Не все так просто, как казалось при написании предыдущей публикации. Нет, на самом деле задействованная защита от хотлинков прекрасно работает и блокирует изображения моего блога на чужих сайтах, но в список этих чужих сайтов попали также он-лайн просмотрщики RSS каналов. :( Ранее поставленная задача усложнилась. Теперь она звучит так:

Защитить медиа-файлы на сайте (расширения .jpg .jpeg .gif .png .bmp .flv .swf) от загрузки браузерами, от которых приходит переменная HTTP_REFERER отличная от http://live.daemony.org/ (и его алиасов). Но применить эту защиту следует не вызывая дискомфорта читателей RSS ленты блога в частности тех, кто использует Google RSS Reader и ему подобные сервисы.

Самое быстрое и оптимальное решение, как мне кажется, отключить трансляцию изображений в RSS. В Wordpress это делается в меню: “Настройки -> Чтение” установкой пункта “Для каждой статьи в RSS-ленте отображать” -> “Анонс (выдержка из текста записи, без форматирования, картинок и ссылок. Обычно это одно-два предложения)“.

Однако, я считаю что транслировать в RSS поток “одно-два предложения” - не есть хорошо. Ведь читатели народ ленивый и реже проявляют заинтересованность к таким анонсам. Ведь, чтобы прочитать весь пост нужно пройти по ссылке на страницу с материалом, а это бывает иногда лень сделать (cужу по себе :lol: ). Поэтому вариант трансляции RSS в виде очень короткого анонса прибережем на самый крайний случай.

А пока вернемся к уже упоминаемому ранее плагину. Называется он hotlink protection, скачать его можно с сайта автора по этой ссылке. Читаем readme.txt внутри архива:

=== Hotlink Protection ===
Contributors: Lim_Dul
Tags: images, feed, protection
Requires at least: 2.0.10
Tested up to: 2.1.3
Stable Tag: trunk

== Описание ==

Предотвращает создание хотлинков изображений в Вашем блоге
не нарушая при этом работу RSS читалок. RSS читалки получают
альтернативный URL изображений, которые не защищены.
Плагин требует mod_rewrite.

== Установка ==

1. Загрузите распакованную папку hotlink-protection в папку с плагинами на сервере
   wp-content/plugins.
2. Активируйте плагин.
3. Перейдите в "Настройки -> Hotlinking Protection" и укажите необходимые настройки.

Все.

Плагин позволяет защитить конкретные директории сайта с изображениями, путем создания тех же mod_rewrite правил в файле .htaccess Тем не менее, плагин, если верить его автору, для всех RSS агрегаторов подменяет URL адреса защищаемых картинок сайта, делая их незащищенными.

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

Пока, в качестве временной меры, в .htaccess пришлось добавить правила, разрешающие рефереры популярных RSS читалок:

RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.com
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?feeds2.feedburner.com
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.com
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?msn.com

Какие домены стоит добавить еще?

* * *

Благодарности

Благодарю моих посетителей по имени Netspider, Fatality и Владимир Лапшин за то, что указали на наличие описанной проблемы.

* * *

UPD: через 5 минут

Проблема решена. Плагин hotlink protection, похоже, действительно исправно работает, превращая в ридерах URL’ы изображений вида:

live.daemony.org/путь/к/файлу.png

в

live.daemony.org/index.php?feedimage=путь/к/файлу.png

Рекомендуется к применению!

P.S.: Колупаясь в Гугле в поисках оптимального решения проблемы вида “хотлинки <–> RSS”, набрал комбинацию слов: “hotlinks защита wordpress“… Открылась довольно интересная картина - предыдущий пост вышел на первое месте. Как вышел - я не знаю. :lol:

hotlinks защита wordpress

Похожие публикации

Выделенные сервера дешевле обычного хостинга

Комментариев 15

1 2

Стальной Бомж 24 января, 2010 22:00:49 EET .:. ID #24412 .:.

Все бы хорошо, и работает этот антихотлинк прекрасно, но вот только для картинок. Как только речь заходит об flv, оказывается, что размещать их на чужих сайтах можно без проблем - плееры в фф и опере не передают реферера. И черт знает что с этим делать, уже третий час бьюсь безрезультатно :(

alexpts 19 декабря, 2009 19:50:25 EET .:. ID #23255 .:.

А для яндекс картинок и гкгл картинок плагин закрывает доступ? Нужно чтобы картинки индексировались ПС.

Daemony 10 апреля, 2009 12:17:47 EEST .:. ID #7548 .:.

А. Теперь понял. :mrgreen:
Это

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feeds2.feedburner.com

было временной затычкой.

После того, как отладил плагин, убрал эту строку.

aivus 10 апреля, 2009 12:13:47 EEST .:. ID #7546 .:.

превьюшки идут через index.php?feedimage=
ну а полноразмерные - директлинк

Ну у тя в .haccess’е прописано же:

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feeds2.feedburner.com

т.е. в таком случае должно показывать полноразмерную картинку при переходе с ридера…

Daemony 10 апреля, 2009 07:19:08 EEST .:. ID #7531 .:.

Посмотри в ридере различия в УРЛах превьюшек и полноразмерных изображений.

1 2

Возник вопрос по этой теме, или есть что добавить? Говорите!

  1. Зарегистрированным пользователям вводить защитный код (captcha) не приходится.
  2. Загрузить свою аватарку Вы сможете, зарегистрировавшись на сервисе www.gravatar.com
Публикуя комментарий Вы подтверждаете, что ознакомились c Правилами и принимаете их!
HOMOSAPIENS ONLY! :)