Ставим защиту от хотлинков
Рано или поздно перед владельцем собственного сервера встает вопрос о защите от хотлинков. Что это такое — все просто. На сайте лежит файл programma.zip Ваши посетители заходят на ваш сервер и скачивают вашу программу. Все довольны и счастливы. Потом появляется гений, который размещает ссылку на ваш файл у себя на сайте. Его посетителям все равно, где файл, они заходят на его страницу, скачивают файл у вас, говорят спасибо ему. Нечестно. Да и родной траффик жалко, особенно если он ограничен. Тоже самое происходит и с картинками, кто-то преспокойно использует ваши картинки у себя на сайте, а вы и не в курсе. Это довольно упрощенное описание проблемы, на самом деле существует еще много аспектов применения защиты от хотлинков. Точно также существует и несколько решений.
Одно из них подходит, когда вы периодически раздаете файлы со своего сервера, то есть держите файл-архив. В таком случае поможет система анти-личинга, примерно такая, как стоит на странице моей программы CDi2MP3. Пользователь заходит и скачивает файл. При попытке личинга система посылает нехорошего человека подальше. Кроме того она может вести учет скачек и много-что еще. Недостаток такой системы — невозможность защитить к примеру картинки.
Мне как раз таки необходимо было защитить мои фотографии. Свои фотографии я храню на сервере в высоком качестве. При просмотре, в зависимости от настроек, специальный скрипт производит кроп до нужного размера, накладывает копирайт и тень, в конце-концов выдаёт все это выдаёт пользователю. Отдавать оригиналы своих фотографий не хочется. Вобщем причин для защиты от хотлинков можно найти много.
Вот один из них. В любой из папок, которую необходимо защитить, создаем файл .htaccess (да, речь идет о веб серверах Apache). Внутри прописываем:
- SetEnvIfNoCase Referer «^http://www.artcore.tj» local_ref=1
- SetEnvIfNoCase Referer «^http://artcore.tj» local_ref=1
- <FilesMatch «.*»>
- Order Allow,Deny
- Allow from env=local_ref
- </FilesMatch>
- <FilesMatch «pub_*.*»>
- Order Allow,Deny
- Allow from All
- </FilesMatch>
Теперь подробнее об этой белиберде:
Первые две строки указывают домейны, которые будут считаться локальными, и с которых разрешен хотлинкинг. При необходимости таких домейнов можно прописать еще.
Третья строка указывает на маску файлов, которые будут защищены от прямых ссылок. В данном случае это абсолютно все файлы. Если надо защитить только картинки, то третью строку можно заменить на
Перейдем сразу к седьмой строке. Может случиться так, что вы сами захотите поместить файл, который будет разрешен к скачиванию по прямым ссылкам. Я предлагаю в этом случае добавить pub_ к имени вашего файла, например pub_image1.jpg и тогда файл прекрасно отдастся незнакомцу несмотря на ваши запреты. И напоследок — номера строк даны для удобства, их прописывать не надо.
Добавить комментарий