Защита файлов от внешних скачиваний. Как?

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

Аватар пользователя engraver engraver 9 июля 2008 в 21:52

Как сделать так, чтобы файл можно было скачать только со страниц моего сайта, а лучше всего - с определенной страницы.
Например, ссылка http://www.mysait.ru/dirname/file.zip, срабатывала только при переходе на нее со страниц(ы) моего сайта, а размещенная на другом сайте не срабатывала?
Есть антилич, найденный на http://galakteko.com/2008/05/26/antilich-anti-leech/, но он у меня не сработывает.
Может быть есть модуль такой для защиты ссылок от внешних скачиваний?

Комментарии

Аватар пользователя engraver engraver 10 июля 2008 в 6:59

У меня уже коллекция файлов .хтассес, написанных хостером, выдающих в результате ошибку 500.
Есть такой:

RewriteCond %{REQUEST_URI} ^/dirname/file.zip$
RewriteCond %{HTTP_REFERER}
!^http://(www\.)?mysait.ru/member_zone/protected\.php [NC]
RewriteRule .* - [F,L]

Еще вот такой:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www.)?mysit.ru/upload.php.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www.)?mysit.ru/send.php.*$
RewriteRule send.php upload.php

И такой, сразу на несколько страниц

RewriteCond %{HTTP_REFERER} !^http://(www.)?mysait.ru/member_zone/protected.php.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www.)?mysait.ru/a[0-9].html.*$
RewriteRule a([0-9]+).html - [F]

Хотелось бы все-таки антилич. Есть же файловые архивы на друпале или сайты с оплатой смс, они как-то защищаются от внешних скачиваний. Как?

Аватар пользователя tmp tmp 10 июля 2008 в 16:51

А, так Вы про временную ссылку! ) Думаю файловый архив - может быть только защищен .хтаксесс а вот смс - то там как раз эта фишка. Но вот под друпал этого модуля не нашел

ЗЫ
referer - модифицируется Smile

Аватар пользователя Drupal Coder Drupal Coder 10 июля 2008 в 18:39

делал через private метод скачивания файлов, это в настройках Drupal ставится, тогда файл не Apache а Drupal вручную отдает и можно вклинить проверки нужные хуком _download

Аватар пользователя Drupal Coder Drupal Coder 11 июля 2008 в 19:20

да, именно так, пример реализации _download можно посмотреть в стандартном модуле upload

чтоб ничего не писать можно поставить Private-метод, директорию под файлы сделать выше DOCUMENT_ROOT и дать права на скачивание файлов только зарегистрированным пользователям, файлы прикреплять к нодам модулем upload, а общедоступные файлы просто вручную выкладывать ниже DOCUMENT_ROOT и прямые ссылки ставить