Как блокировать внешние ссылки или получить от этого пользу ?

интернет программирование php seo безопасность

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

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


Примечание:
>>> блокировать ip-адреса нежелательных плагиаторов

Я устану за ними бегать.... но я могу блокировать доступ по REFERER. Хотя хотелось бы всё-таки поиметь пользу.
Ситуация осложняется также тем, что все картинки должны быть доступны в images.(google|yandex|yahoo|.*).com.

Насчёт подписей на картинках - круто, я тоже думал об этом, но это решение небыстрое (т.к. скрипт галереи не мой, придётся ковыряться). Я не хочу ставить подписи для посетителей, поэтому такие сложности.

Какие ещё есть идеи ?

Примечание:
>>> Можно одним махом программно изменить имена файлов картинок, дописать пару букв или цифр и поменять также урлы в бд, и у всех воришек картинки пропадут :)

Насчёт пропадания картинок - нет проблем, всегда можно успеть.

Примечание:
>>я стал обнаруживать слишком большую загрузку сервера
> все зависит на сколько хватает мощностей вашего сервера в калифорнии :)

Сервер в Германии, но это не имеет значения. Какой бы избыточной загрузка ни была, с краденного блоггерами траффика я не имею никакой выгоды. Тем более, что загрузка существенная.
Ответы:
блокировать ip-адреса нежелательных плагиаторов
писать на картинках свой домен
Если реферера нет, никак не реагировать. Если есть и с чужого сайта, вместо картинки показывать страницу типа "Вы теперь на моем крутом сайте, ткните сюда, чтобы посмотреть картинку, которую эти поцы прилинковали директом, или сюда, а тут вот еще круче...". Ну, как народ.ру и подобные сервисы. А роботов можно и отдельно отрабатывать, по юзер-агенту.
----.htaccess----
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteRule \.(gif|jpe?g|png)$ - [F,NC,L]
============
...и никаких картинок у врагов.
Про "выгоду" для себя можно говорить лишь как раз имея достаточный запас по нагрузке, например, отдавая какую-то "зазывающую" картинку всем "чужакам" . Для этого последняя строка будет другой:
-----
RewriteRule \.(jpg|png|gif)$ http://site.ru/my_image.jpg [NC,R,L]
===
Для начала советую для таких дел использовать хотябы nginx(нагрузка упадёт сразу в разы). В нём можно проверять REFERER и если он не из разрешенных,то перенаправлять на страницу ошибки. Всё это легко делается с помощью регулярных выражений.
Составить белый список доменов рефферов, с которых показывать картинку (images.(google|yandex|yahoo|.*).com + свой домен), все остальные идут лесом, в том числе без реффера.
— блокировка ip не поможет. если бы фотки тырили парсером, тогда да;
— доступ по реферер можно не блокировать. наоборот, если он не совпадает с адресом Вашего сайта, выдавать картинку-заглушку с текстом: посмотреть картинку можно на сайте http://site.ru/;
— по юзерагенту дополнительно проверять ботов поисковых систем; им разрешать загрузку вне зависимости от реферера;
— всегда разные адреса картинок не будут способствовать популяризации сайте через googleimages/yandeximages и т. п.


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.