Можно ли отличить хотлинкинг от обычного связывания изображений с помощью .htaccess?

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

<img src='http://mysite.com/image.jpg'/>

Но если они используют это, он будет перенаправлен на другую страницу при посещении:

<a href='http://mysite.com/image.jpg'>Click Here</a>

Я считаю, что $HTTP_REFERER один и тот же, независимо от двух методов. Есть ли другой умный способ различить их?


person Jake    schedule 08.05.2012    source источник
comment
Не ответ как таковой, а очень связанная информация о методе, позволяющем людям не вставлять ваши изображения, позволяя им ссылаться на ваши изображения, показывая другую страницу. С небольшой настройкой, я думаю, вы могли бы выполнить свои требования. http://www.alistapart.com/articles/hotlinking/   -  person John    schedule 09.05.2012
comment
К сожалению, этот метод не будет работать, потому что способ, которым он запрещает хотлинкинг, заключается в том, что он просто разрывает изображение из-за того, что ссылка отправляет заголовки HTML. Мне нужно изображение для отправки заголовков изображения при горячей ссылке, чтобы изображение было встроено.   -  person Jake    schedule 09.05.2012
comment
Да, я обдумывал это за ужином и понял, что это работает только за счет предотвращения хотлинкинга от рефералов, не внесенных в белый список.   -  person John    schedule 09.05.2012
comment
Вам обязательно нужно сделать это с помощью htaccess?   -  person Pier-Alexandre Bouchard    schedule 09.05.2012
comment
После долгих размышлений я склонен согласиться с тем, что это невозможно сделать, по крайней мере, не разумно. Не очень разумное решение (в зависимости от объема задействованных запросов) состояло бы в том, чтобы переписать все запросы изображений от реферера, отличного от вашего, в скрипт, который очищает ссылающуюся страницу, чтобы определить, поступила ли она через тег или img и обработайте его соответствующим образом (и кэшируя результат, чтобы вам не пришлось очищать его в следующий раз) РЕДАКТИРОВАТЬ: более разумным компромиссом может быть переписывание запросов от рефералов, отличных от вашего собственного сайта, на версию изображения с водяным знаком.   -  person John    schedule 09.05.2012
comment
@John - Это неплохая идея, насчёт водяных знаков. Спасибо.   -  person Jake    schedule 09.05.2012


Ответы (1)


Многие браузеры отправляют разные заголовки Accpet: в этих двух ситуациях.

При запросе ресурса от <img src="xxx">:

Accept: */*

При запросе URL в адресной строке:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
person mateusza    schedule 09.05.2012
comment
Опечатка: Принять. Кроме того, заголовок, вероятно, должен быть во множественном числе. (SO не разрешает корректировать менее 6 символов.) - person Jacob C.; 19.03.2019