mod_setenvif и защита от хотлинкинга
Интернет — 24 февраля, 2008 11:26 — Комментариев: 2
Теги: apache, mod_rewrite, mod_setenvif, php
Wikipedia дает такое определение хотлинкингу:
Хотлинк (англ. hotlink) — включение в веб-страницу файлов-изображений или других ресурсов с чужого сервера. Этот прием используется недобросовестными вебмастерами, которые заставяют браузер посетителя загружать картинки с чужого сервера. Тем самым расходуются чужие ресурсы и трафик.
Как от него защититься?
Первый способ, который приходит в голову - использование mod_rewrite. Получается примерно так:
1
2
3
4
5
| RewriteEngine On RewriteBase / # Steal protect RewriteCond %{HTTP_REFERER} !avtobeginner\.ru RewriteRule \.(jpe?g|gif|bmp|png)$ dnts.gif [L] |
В результате, если HTTP_REFERER не содержит avtobeginner.ru - показывается картинка dnts.gif
При таком подходе существуют два недостатка:
- Из-за использования mod_rewrite при обработке запроса с чужого домена происходит 2 запроса: сначала исходного файла, потом “специальной” картинки.
- Т.к. отдается специальная картинка - траффик (а он у некоторых хостеров бывает платным) все равно расходуется.
На выручку приходит модуль mod_setenvif. Он позволяет задавать переменные окружения в зависимости от запроса.
Для защиты картинок пишем так:
1
2
3
4
5
6
| SetEnvIfNoCase Referer "^http://avtobeginner.ru" local_ref=1 SetEnvIfNoCase Referer "^http://www.avtobeginner.ru" local_ref=1 <FilesMatch "\.(gif|jpg|jpeg|png)$"> Order Allow,Deny Allow from env=local_ref </FilesMatch> |
Таким образом мы разрешаем доступ к картинками (по маске [можно добавить и другие типы файлов]) только “локально”. Запрос считается “локальным” если пришел с домена, содержащего avtobeginner.ru. Все остальные увидят 403 Forbidden.
Поиск
Топ комментаторов
6
4
2
1
1
Новые комментарии
- → Ага, ушел.... 16
- → Выдает в каком месте? Файл spellchecker\rpc.php, который собственно проверяет... 12
- → Да!... 8
- → Я в своих скриптах очень редко использую @. Просто наткнулся на данный факт р... 7
- → Вообще говоря, игры с "собаками" - весьма опасное занятие. Странен сам факт подо... 7
- → Рыба живет в доме Немца.... 8
- → Видать совсем глубоко в разработку ушел, давно нет постов... :)... 16
Свежие записи
Друзья
Интернет - августа 12, 2008 13:44 - Комментариев: 8
Про MySQL
Еще в рубрике Интернет
- Как заработать денег на блоге?
- Обработка ошибок в PHP и исключения
- Начинаю разработку…
- @$_GET['something']
- PR вырос - апдейт Google PR
Рукоприкладство - июля 11, 2008 20:59 - Нет комментариев
Сдали: VEGA
Еще в рубрике Рукоприкладство
- Сдали: Пресс-база Volkswagen
- Сдали: Кировская Городская дума
- Сдали: Маркетинговая база Volkswagen
- Сдали: Кировский молочный комбинат
МайЛайф - августа 2, 2008 21:49 - Нет комментариев
День рождения ПБК
Еще в рубрике МайЛайф
- Прочитал: Сергей Лукьяненко - “Конкуренты”
- Задачка от Эйнштейна
- Про Роберта Кийосаки, крысиные бега и матрешек
- Мой блоггерский рабочий стол
- Я - свободен! Но это временно…






Респект замечательная заметочка!