С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 18/02/07 в 17:22 |
Народ, подскажите что я делаю не так.
Хочу закрыть содержимое папки от скачивания всякими качалками.
Решил заюзать htaccess следующего содержания:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC Web Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^download manager [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web Image Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]
Но после заливки файла с таким содержанием - урл не открываеться не только качалками но и через броузер. Выдаёт 500 ошибку.
В логах увидел следующую причину:
.htaccess: RewriteCond: bad flag delimiters
Что в файле не так? Я не спец в этом, поэтому самому сложно разобраться.
|
|
|
|
С нами с 01.11.06
Сообщения: 316
Рейтинг: 293
|
Добавлено: 18/02/07 в 17:43 |
Даже, если и доведёшь до ума такую конструкцию, то mod_rewrite обычно грузит сервер при нормальном трафе. Юзай вот такое:
SetEnvif user-agent Wget baduser
SetEnvif user-agent ... baduser
SetEnvif user-agent ... baduser
Order Allow,Deny
Allow from all
Deny from env=baduser
Должно помочь.
|
|
|
|
С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 18/02/07 в 20:31 |
zteam писал: | SetEnvif user-agent Wget baduser
SetEnvif user-agent ... baduser
SetEnvif user-agent ... baduser
|
Я не спец в хтаксесе, но разве так его правила записываются?
Или это так нужно php записывать?
Сорри за тупость, но я с этим раньше не сталкивался.
|
|
|
|
С нами с 01.11.06
Сообщения: 316
Рейтинг: 293
|
Добавлено: 19/02/07 в 02:05 |
Да, так они записываются. В своём первом варианте ты юзаешь mod_rewrite в апаче, а в данном примере - mod_setenvif. Только в:
SetEnvif user-agent Wget baduser
SetEnvif user-agent ... baduser
SetEnvif user-agent ... baduser
замени "..." на все качалки, что у тебя в Rewrite'ах стоят.
|
|
|
|
С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 19/02/07 в 02:36 |
2 zteam:
Спасибо за ответы.
И ещё пара вопросов. А в начале нужно что-то писать типа:
RewriteEngine On
только для mod_setenvif?
и нужно ли использовать по принцыпу приведённого мной примера разделители
%{} ^[OR]
в твоём варианте?
|
|
|
|
С нами с 01.11.06
Сообщения: 316
Рейтинг: 293
|
Добавлено: 19/02/07 в 03:07 |
Нет, тебе ничего в .htaccess не нужно писать ничего из того, что привёл ты.
Пишешь мой пример, заменяя "..." на имена качалок:
SetEnvif user-agent Wget baduser
SetEnvif user-agent ... baduser
SetEnvif user-agent ... baduser
Order Allow,Deny
Allow from all
Deny from env=baduser
Основная идея в том, что качалки будут резаться по рефереру, он у них выглядит, как их название, т.е. "Wget/...", "Reget/..." и т.д..
|
|
|
|
С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 21/02/07 в 19:19 |
2 zteam:
Попробовал твою конструкцию.
Всеравно моя качалка взяла файл. Как оказалось она рефер свой не передаёт а косит под Mozilla 4.0 собственно как и все современные качалки.
Тогда я вот подумал, а как бы в твою конструкцию дописать чтобы перед отдачей файла проверялся рефер юзера.
Т.е. допустим ссылка на файл лежит на защищённой страничке и только пришедшему с этой странички - отдавался файл?
Нашёл нечто подобное:
SetEnvIf Referer ^http:\/\/www\.myhost\.ru from_my_site
<Directory /restricted>
order deny,allow
Deny from All
Allow from env=from_my_site
</Directory>
Только незнаю как его увязать с предыдущим куском. Ведь выше уже используються и SetEnvIf и Deny from All, Allow from env?
|
|
|
|
С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 21/02/07 в 19:23 |
Кстати по ходу нарыл в поисковиках похожего рода топик на одной из борде.
Чел ставил задачу:
"Нужно ограничить доступ к одной из директорий сайта с чужих ссылок (и без рефереров вообще) средствами Апаче."
И вроде как хостер ему помог это реализовать с помощью:
Options +SymLinksIfOwnerMatch
Только вот жаль он не написал самого исходника, как это у него получилось.
Есть какие-нибудь идеи по этому поводу?
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 21/02/07 в 19:58 |
Не совсем понятно, зачем с юзер-агента съехали к рефереру... zteam написал все правильно. Должно работать. Я бы только заменил директиву SetEnvIf на SetEnvIfNoCase, и добавил бы якоречек к имени агента. Ну и не забываем ескепить пробелы, или ставить кавычки.
....
SetEnvIfNoCase User-Agent "^dowload manager" baduser
....
Deny from env=baduser
P.S. mod_rewrite в топку
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 21/02/07 в 20:00 |
Politryk писал: |
И вроде как хостер ему помог это реализовать с помощью:
Options +SymLinksIfOwnerMatch
|
В огороде бузина... Это из другой оперы
|
|
|
|
С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 21/02/07 в 23:15 |
lega_cobra писал: | Не совсем понятно, зачем с юзер-агента съехали к рефереру... zteam написал все правильно. Должно работать. |
Дело всё в том, что мой например ReGet свой юзер-агент реальный не передаёт и в логах в строчке Get нет ни малейшего упоминания о нём.
Косит под браузер чётко.
|
|
|
|
С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 21/02/07 в 23:35 |
lega_cobra писал: |
....
SetEnvIfNoCase User-Agent "^dowload manager" baduser
....
Deny from env=baduser
|
Только что проверил и такую комбинацию. Не пашет. Т.е. качалки по прежнему делают своё дело.
Нужно наверное всётаки с рефером что-то замутить.
Или как последний способ - скрипты (подстановка левого урла или редиректы). Жаль в скриптах не силён.
Может кто из програмёров сможет сделать нечто работоспособное?
|
|
|
|
С нами с 21.09.03
Сообщения: 7329
Рейтинг: 2144
|
Добавлено: 22/02/07 в 00:03 |
Politryk писал: | Дело всё в том, что мой например ReGet свой юзер-агент реальный не передаёт и в логах в строчке Get нет ни малейшего упоминания о нём. |
Ну так ты пытаешься бороться с качалками, а качалки борются с тобой
Так-что надежного решения нет. Редиректами тоже не поможешь, ибо качалки очень хорошо по редиректам ходят.
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 22/02/07 в 00:21 |
а разве такие методы еще срабатывают ? Вроде все вменяемые качалки давно браузером прикидываются, ну разве раритет какой еще остался.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|
XXX-Server.biz
С нами с 15.02.03
Сообщения: 9411
Рейтинг: 6676
|
Добавлено: 22/02/07 в 00:28 |
большинство современных качалок и реферер тоже перехватывают
|
|
|
|
С нами с 01.11.06
Сообщения: 316
Рейтинг: 293
|
Добавлено: 22/02/07 в 04:00 |
Дык изначально было ясно, что это простейшая защита от качалки глупого юзера, который не знает, что такое User-Agent, Referef и т.п.
Я спотрю, что по ходу топика съехали к антихотлинку больше, чем к защите от качалок.
|
|
|
|
С нами с 01.11.06
Сообщения: 316
Рейтинг: 293
|
Добавлено: 22/02/07 в 04:02 |
lega_cobra писал: |
P.S. mod_rewrite в топку |
Таки да...
Offtop: помнится по неопытности на серваке виртуального хостинга сделал антихотлинк на базе реврайта. Захожу потом на сервак - а идла 0 )
|
|
|
|
С нами с 06.06.05
Сообщения: 604
Рейтинг: 306
|
Добавлено: 22/02/07 в 16:36 |
zteam писал: | Я спотрю, что по ходу топика съехали к антихотлинку больше, чем к защите от качалок. |
Так всё же давайте вернёмся к теме топика.
Как же всё таки закрыть доступ качалкам?
Неужели никто незнает ни одного варианта.
|
|
|
|