|
|
|
| Задача такая: для каждого запроса картинки, js-файла или scc-файла нужно однозначно определять в .htaccess-файле сайта - сделан ли запрос со страницы этого сайта или извне. Чтобы использовались они только по назначению, и их нельзя было закачивать на чужие страницы (или просто напрямую).
Обычно по этому поводу сразу начинают говорить про анализ реферера. Что-то вроде этого:
RewriteCond %{HTTP_REFERER} !^http://mysite/.*$ [NC]
RewriteRule .*\.(jpg|gif|png|css|js)$ - [F,NC]
|
Но ведь реферер - штука ненадёжная. Его и подделать несложно, и пользователь может в браузере отключить, и файрволлом его передача может блокироваться.
Так существует ли способ надёжно определить пусть не источник любого запроса, так хотя бы то, что файл запрошен для загрузки на страницу собственного сайта?
Второй вопрос: какие из заголовков и других служебных данных, передаваемых браузерами вместе с запросом, передаются в обязательном порядке, и не могут быть подделаны? Может, среди них найдётся для решения поставленной задачи что-то более подходящее, чем реферер. Да и для решения других задач такая информация была бы полезна. | |
|
|
|
|
|
|
|
для: Crimear
(07.05.2008 в 07:13)
| | А что вам мешает отдавать (подключать) JS, CSS, да и картинки (если уж они такие ценные) посредством РНР-сценария? | |
|
|
|
|
|
|
|
для: sim5
(07.05.2008 в 08:28)
| | >да и картинки (если уж они такие ценные)
При чём здесь "ценные"? Защищать картинки запретительными способами бессмысленно - их и прямо со страниц сайта любой не-совсем-чайник себе на память скопирует. Или из кэша возьмёт, вместе с js- и scc-файлами.
А вот ограничить ненужный посторонний трафик и лишнюю нагрузку на сайт и сервер совсем не помешает - те самые трафик и нагрузку, которые генерируются, когда ваши файлы закачивает непонятно кто непонятно зачем и непонятно с какой интенсивностью. Я просто хочу, чтобы файлы использовались только для того, для чего они предназначены - для создания страниц моего сайта.
>А что вам мешает отдавать ... картинки ... посредством РНР-сценария?
Не подскажите, как отдавать картинки посредством PHP? Рассматривал такой способ как один из вариантов и пробовал, но у меня ничего не получается :(. Да, в PHP-то я могу определить, что картинка запрошена по назначению. А вот как потом отдать картинку так, как она есть, как-будто ни через какой скрипт запрос и не проходил, я не знаю. (Естественно, использование всяких "PHP-фотошопств" - imagecreatefromjpg() и т.п. - здесь совершенно неуместы.) | |
|
|
|
|
|
|
|
для: Crimear
(07.05.2008 в 13:35)
| | Волков бояться - не пить шампанского! Если вы так беспокоитесь, что вас "удушат" лишним трафиком - закройте папки со своими JS, CSS, IMG, etc файлами посредством .htaccess, ответ на запрос этих папок напрямую будет краток, а значит и о расходе трафика беспокоится не надо будет. Любой файл можно отдать РНР скриптом. Как это сделать с картинками - в раздел РНР, там примеров этому несчетное количество. Как JS, пример (простой) можно посмотреть здесь: http://softtime.ru/forum/read.php?id_forum=4&id_theme=52636&page=2 | |
|
|
|
|
|
|
|
для: Crimear
(07.05.2008 в 07:13)
| | > передаются в обязательном порядке, и не могут быть подделаны?
Подделать можно любой заголовок. Но вот только по заголовку Host Apache определяет с какому из сайтов обращаются.
> Так существует ли способ надёжно определить пусть не источник любого запроса, так хотя бы то, что файл запрошен для загрузки на страницу собственного сайта?
Нет. | |
|
|
|