Предотвращение скачивания файлов по прямым ссылкам

Главные вкладки

Аватар пользователя romantaran romantaran 27 февраля 2007 в 22:39

Посоветуйте, как можно предотвратить скачивание файлов с сервера по прямым ссылкам с других сайтов (файлы на сервер закачивают юзеры по фтп). Хотелось бы, чтобы было примерно как на "Народе": вместо непосредственной загрузки файла открывается страница сайта, на котором он размещен, а на странице уже ссылка для закачки.

К Друпалу это имеет косвенное отношение, но реализовать это нужно на сайте, работающем на Друпале.

Насколько я себе представляю, нужно задать некие правила в .htaccess и создать php-страницу, которой бы передавалась переменная, содержащая ссылку на запрошенный файл. На этом мои познания исчерпываются.

Комментарии

Аватар пользователя Shedko Shedko 28 февраля 2007 в 3:27

Для начала начнем с изменения содержимого файла .htaccess в папке files или любой другой в которой хранятся Ваши файлы.

И так, содержание
=================================================================================
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
Options None

RewriteEngine off

; на эту страничку будет идти переход в случае если ссылку мы запретили
; у меня здесь просто ссылка на сайт,но можно и на спец. страницу
; где будет говорится, что "низя"
ErrorDocument 403 http://сайт.org

RewriteEngine On
Options +FollowSymlinks
RewriteBase /

;
RewriteCond %{HTTP_REFERER} !^http://сайт.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://сайт.org$ [NC]
; не забываем что на сайт могут зайти с префиксом www
RewriteCond %{HTTP_REFERER} !^http://www.сайт.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.сайт.org$ [NC]

; так как у меня есть еще поддомен, то разрешил и ему, в общем если не надо удалите эти 2 строчки
RewriteCond %{HTTP_REFERER} !^http://eng.сайт.org/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://eng.сайт.org$ [NC]
; запрещаем скачивание exe|rar|zip|png|gif|jpeg|jpg файлов с других сайтов
RewriteRule .*\.(exe|rar|zip|png|gif|jpeg|jpg)$ http://сайт.org [R,NC]
===============================================================

Это полностью не запретит скачивание с других серверов, так как многие сайты с софтом, например, умеют заменять HTTP_REFERER на нужный Smile Но уберет хотя бы большинство личеров.

Но это один из самых легких способов. Также можно поискать отдельные "анти-личерские" компоненты, но с ними, придется изменять все ссылки которые уже есть.