.htaccess Не работает защита от горячих ссылок

Я веду блог Wordpress, и один "джентльмен" крадет мои сообщения. Я решил усложнить его жизнь и не хотел бы, чтобы в моем блоге были ссылки на изображения.

Я использовал htaccesstools com / hotlink-protection / для создания части .htaccess для предотвращения хотлинков.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak.pl [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wojcieh.net [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ https://wojcieh.net/wp-content/uploads/2017/06/fuck-you-stealer.gif [NC,R,L]

Я создал тестовый блог, чтобы посмотрим, смогу ли я сделать горячую ссылку на свои изображения https: //stagingwpblog.wordpress. com / 2017/03/13 / test-blog-post / , а изображение все еще отображается.

Что я здесь делаю не так?

2
задан 23 May 2017 в 17:08
2 ответа

Поскольку вы перенаправляете на «альтернативный образ», вам необходимо включить исключение, чтобы запросы к вашему «альтернативному образу» также не перенаправлялись, тем самым создавая перенаправление цикл (который истекает и создает дополнительную нагрузку на ваш сервер!).

Например:

RewriteEngine on
RewriteCond %{REQUEST_URI} !thou-shalt-not-steal\.gif$
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak.pl [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wojcieh.net [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ https://wojcieh.net/wp-content/uploads/2017/06/thou-shalt-not-steal.gif [NC,R,L]

Однако, если вы должны вернуть изображение (а не просто 403 запрос), то было бы предпочтительнее внутренне переписать запрос, а не перенаправление. Таким образом, ваш сервер не получит дополнительный запрос, а «альтернативное изображение» останется инкогнито (его труднее украсть!). Например:

RewriteEngine on
RewriteCond %{REQUEST_URI} !thou-shalt-not-steal\.gif$
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak\.pl [NC]
RewriteCond %{HTTP_REFERER} !^https://wojcieh\.net [NC]
RewriteRule \.(jpe?g|png|gif)$ /wp-content/uploads/2017/06/thou-shalt-not-steal.gif [NC,L]

NB: вам нужно установить условие только для канонических хостов.


Кроме того: Инструмент, который вы использовали на htaccesstools.com , включает дополнительное примечание:

ПРИМЕЧАНИЕ: Убедитесь, что изображение не защищено от хотлинков, иначе ваш сервер может зайти в бесконечный цикл.

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

1
ответ дан 3 December 2019 в 12:36

Это просто. Ваш тестовый сайт загрузит изображение с https://i1.wp.com/wojcieh.net/wp-content/uploads/2016/02/vcenter-server-6.-upgrade-logo.png , а не с вашего сайта, поэтому ваш .htaccess не работает.

0
ответ дан 3 December 2019 в 12:36

Теги

Похожие вопросы