![]() |
![]() |
ВходЗдравствуйте, Гость ( Вход | Регистрация )
|
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Ю а Зверь! (3-815-407) ![]() Группа: Разработчики Сообщений: 1,263 Регистрация: 5.7.2007 Из: Рашен федерашен Пользователь №: 263 Спасибо сказали: 320 Вставить ник ![]() |
К вопросу NG16 по поводу защиты темы от скачивания средствами htaccess. Метод не 100%-ый, но от ламеров спасет.
Защита от прямого скачивания Блокирование вставки прямых ссылок на скачку наших файлов с других сайтов Описание: Предположим что мы имеем на http://htaccess.net.ru архив файлов - с расширениями .jpg, .gif, .png, .css, .mov, .swf, .exe, .rar, .avi, .vob, .zip. Эти файлы интересны, поэтому другие могут помещать их на свои страницы прямо через гиперссылки. Нам не нравится эта практика потому что она добавляет бесполезный траффик для нашего сервера. Решение: В то время как мы не можем на 100% защитить наши картинки от вставки на другие страницы, мы, по крайней мере, можем ограничить случаи в которых браузер посылает HTTP заголовок Referer. #включаем работу механизма преобразований #(при тестировании дома если ни чего не происходит проверьте #раскоментированна ли строка, подключающая модуль в httpd.conf #- LoadModule rewrite_module modules/mod_rewrite.so #и параметры дающие соответсвующие разрешения для .htaccess #- http://htaccess.net.ru/doc/htaccess/Conf-htaccess.php) RewriteEngine on #если _не_ пустой HTTP заголовок Referer браузера зашедшего RewriteCond %{HTTP_REFERER} !^$ #если пришли и _не_ с сайта http://htaccess.net.ru RewriteCond %{HTTP_REFERER} !^http://(www.)?htaccess\.net\.ru/.*$ [NC] #и _не_ с странице, например free-gif.html - любого домена RewriteCond %{HTTP_REFERER} !.*/free-gif\.html$ #определяем для каких объектов правила - запрещаем скачивать #следующие файлы - расширения .jpg,.gif,.png,.css,.mov,.swf,.exe, #.rar,.avi,.vob,.zip посетителю, скачивающему наши файлы по ссылке #расположенной не на нашем домене (или не на странице free-gif.html #любого домена) - сервер выдаст, когда нажмем по ссылке скачать - #Forbidden - #You don't have permission to access /passwd12.zip #on this server. RewriteRule .(jpg|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip)$ - [F] Если нужно ограничить скачивание лишь на один определенный каталог, то бросаем htaccess не в корневую директорию сайта, а в эту конкретную папку. Возможно преобразование http -ссылок с помощью модуля mod _ rewrite покажется очень сложной задачей, но на самом деле это не совсем так: с опытом придет и понимание, и мастерство. Если вы внимательно читаете документацию, четко представляете необходимые преобразования ссылок и тщательно проверяете написанные вами правила, все будет работать правильно. Иначе и быть не может, не так ли? |
|
|
![]()
Сообщение
#2
|
|
Фэнат Stamina-ы ![]() Группа: Разработчики Сообщений: 2,470 Регистрация: 6.7.2007 Из: (-: Украина :-) Пользователь №: 268 Спасибо сказали: 992 Вставить ник ![]() |
Лучше всего, это делать динамические адреса для картинок и все обрабатывать на ПХП.
|
|
|
![]()
Сообщение
#3
|
|
Ю а Зверь! (3-815-407) ![]() Группа: Разработчики Сообщений: 1,263 Регистрация: 5.7.2007 Из: Рашен федерашен Пользователь №: 263 Спасибо сказали: 320 Вставить ник ![]() |
|
|
|
![]()
Сообщение
#4
|
|
Владею силой бесмысленых сообщений! ![]() Группа: Разработчики Сообщений: 1,040 Регистрация: 6.12.2007 Из: ПиПербуг Пользователь №: 1,543 Спасибо сказали: 286 Вставить ник ![]() |
Басое спасибо (IMG:http://antislaed.net/style_emoticons/default/smile.gif)
|
|
|
![]()
Сообщение
#5
|
|
Я только смотрю... ![]() Группа: Пользователи Сообщений: 8 Регистрация: 5.2.2009 Из: Тюмень Пользователь №: 7,308 Спасибо сказали: 0 Вставить ник ![]() |
движок 4.3.1
пробовал без проверки всяких рефереров в гавном .htaccess прописать RewriteRule .(jpg|gif|png|css|mov|swf|dcr|exe|rar|avi|vob|zip)$ - [F] всё равно прямые ссылки на zip-файлы (остальные не проверял) остаются рабочими. хостинг - рекомендованный командой антисаед. главная задача: поймать ссылки на zip и перенаправить на страницу скачки, чтобы траффик учитывался. уже всякие рулы пробовал - ничего не помогает на всякий случай выкладываю текущий .htaccess: CODE # Copyright © 2008 Sergey "Next" # "ArtGlobals" studio (http://www.artglobals.com) # Errors ErrorDocument 400 /index.php?error=400 ErrorDocument 401 /index.php?error=401 ErrorDocument 403 /index.php?error=403 ErrorDocument 404 /index.php?error=404 ErrorDocument 500 /index.php?error=500 ErrorDocument 503 /index.php?error=503 # Security # php_flag register_globals off # php_flag safe_mode on # php_flag magic_quotes_gpc on # Mod rewrite on RewriteEngine On RewriteBase / # Index RewriteRule ^index(.html|.htm)? index.php [NC] # All standart moduls and RSS RewriteRule ^rss.xml(.*)$ rss.php$1 [NC] RewriteRule ^lang[\W_](\w+)(.html|.htm)?$ index.php?newlang=$1 [NC] RewriteRule ^private[\W_]do[\W_](\d+)[\W_](\d+)(.html|.htm)?$ index.php?name=private&op=dels&id=$1&type=$2 [NC] RewriteRule ^private[\W_]print[\W_](\d+)(.html|.htm)?$ index.php?name=private&file=print&id=$1 [NC] RewriteRule ^private[\W_](\w+)[\W_](\d+)(.html|.htm)?$ index.php?name=private&op=$1&id=$2 [NC] RewriteRule ^private[\W_]info[\W_]@(.+)$ index.php?name=private&op=message&uname=$1 [NC] RewriteRule ^private[\W_](\w+)(.html|.htm)?$ index.php?name=private&op=$1 [NC] RewriteRule ^(\w+)[\W_]main(.html|.htm)?$ index.php?name=$1&file=index [NC] RewriteRule ^(\w+)[\W_]top(.html|.htm)?$ index.php?name=$1&file=index&do=top [NC] RewriteRule ^(\w+)[\W_]upload(.html|.htm)?$ index.php?name=$1&file=index&do=upload [NC] RewriteRule ^(\w+)[\W_]clients(.html|.htm)?$ index.php?name=$1&op=clients_info [NC] RewriteRule ^(\w+)[\W_]partners(.html|.htm)?$ index.php?name=$1&op=partners_info [NC] RewriteRule ^(\w+)[\W_]edithome(.html|.htm)?$ index.php?name=$1&op=edithome [NC] RewriteRule ^logout(.html|.htm)?$ index.php?name=account&op=logout [NC] RewriteRule ^(\w+)[\W_]newuser(.html|.htm)?$ index.php?name=$1&op=newuser [NC] RewriteRule ^(\w+)[\W_]passlost(.html|.htm)?$ index.php?name=$1&op=passlost [NC] RewriteRule ^@(.+)$ index.php?name=account&op=info&uname=$1 [NC] RewriteRule ^(\w+)[\W_]rech[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=clients_rech&client_id=$2 [NC] RewriteRule ^avatar[\W_]([^\W_]+)[\W_](.+)(.html|.htm)?$ index.php?name=account&op=saveavatar&category=$1&avatar=$2 [NC] RewriteRule ^(\w+)[\W_]print[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=printe&id=$2 [NC] RewriteRule ^(\w+)[\W_]view[\W_](\d+)[\W_](\d+)[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=view&id=$2&pag=$3&num=$4 [NC] RewriteRule ^(\w+)[\W_]view[\W_](\d+)[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=view&id=$2&num=$3 [NC] RewriteRule ^(\w+)[\W_]view[\W_](\d+)[\W_]word[\W_](.+)$ index.php?name=$1&op=view&id=$2&word=$3 [NC] RewriteRule ^(\w+)[\W_]view[\W_](\d+)[\W_]last.html$ index.php?name=$1&op=view&id=$2&last [NC] RewriteRule ^(\w+)[\W_]view[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=view&id=$2 [NC] RewriteRule ^(\w+)[\W_]broken[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=broken&id=$2 [NC] RewriteRule ^(\w+)[\W_]let[\W_](.+)[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=liste&let=$2&num=$3 [NC] RewriteRule ^(\w+)[\W_]let[\W_](.+)$ index.php?name=$1&op=liste&let=$2 [NC] RewriteRule ^(\w+)[\W_]list[\W_](\d+)(.html|.htm)?$ index.php?name=$1&op=liste&num=$2 [NC] RewriteRule ^(\w+)[\W_]list(.html|.htm)?$ index.php?name=$1&op=liste [NC] RewriteRule ^(\w+)[\W_]kasse(.html|.htm)?$ index.php?name=$1&op=kasse [NC] RewriteRule ^([\w]+)[\W]add[\W]([\d]*)[\W]0[\W]([\d]*)[\W]([\d]*)(.html|.htm)?$ index.php?name=$1&op=add&cat=$2&id=0&pid=$3&qid=$4 [NC] RewriteRule ^([\w]+)[\W]add[\W]([\d]*)[\W]([\d]*)[\W]([\d]*)(.html|.htm)?$ index.php?name=$1&op=add&cat=$2&id=$3&pid=$4 [NC] RewriteRule ^([\w]+)[\W]add[\W]([\d]*)[\W]0[\W]([\d]*)(.html|.htm)?$ index.php?name=$1&op=add&cat=$2&id=0&pid=$3 [NC] RewriteRule ^([\w]+)[\W]add[\W]([\d]*)(.html|.htm)?$ index.php?name=$1&op=add&cat=$2 [NC] RewriteRule ^([\w]+)[\W]add(.html|.htm)?$ index.php?name=$1&op=add [NC] RewriteRule ^([\w]+)[\W]delet[\W]([\d]*)[\W]([\d]*)(.html|.htm)?$ index.php?name=$1&op=delet&cat=$2&id=$3 [NC] RewriteRule ^(\w+)[\W_]new[\W_](\d+)(.html|.htm)?$ index.php?name=$1&new=1&num=$2 [NC] RewriteRule ^(\w+)[\W_]new(.html|.htm)?$ index.php?name=$1&new=1 [NC] RewriteRule ^(\w+)[\W_]best[\W_](\d+)(.html|.htm)?$ index.php?name=$1&best=1&num=$2 [NC] RewriteRule ^(\w+)[\W_]best(.html|.htm)?$ index.php?name=$1&best=1 [NC] RewriteRule ^(\w+)[\W_]hits[\W_](\d+)(.html|.htm)?$ index.php?name=$1&hits=1&num=$2 [NC] RewriteRule ^(\w+)[\W_]hits(.html|.htm)?$ index.php?name=$1&hits=1 [NC] RewriteRule ^(\w+)[\W_]cat[\W_](\d+)[\W_]word[\W_](.+)$ index.php?name=$1&cat=$2&word=$3 [NC] RewriteRule ^(\w+)[\W_]cat[\W_](\d+)[\W_](\d+)(.html|.htm)?$ index.php?name=$1&cat=$2&num=$3 [NC] RewriteRule ^(\w+)[\W_]cat[\W_](\d+)(.html|.htm)?$ index.php?name=$1&cat=$2 [NC] RewriteRule ^(\w+)[\W_]word[\W_](.+)$ index.php?name=$1&word=$2 [NC] RewriteRule ^(\w+)[\W_](\d+)(.html|.htm)?$ index.php?name=$1&num=$2 [NC] RewriteRule ^(\w+)[\W_](\w+)[\W_]word[\W_]([^\W_]+)[\W_](\d+)$ index.php?name=$1&mod=$2&word=$3&num=$4 [NC] RewriteRule ^(\w+)/(\w+)(.html|.htm)?$ index.php?name=$1&mod=$2 [NC] RewriteRule ^internet_radio(.html|.htm)(.*)$ index.php?name=internet_radio$2 [NC] RewriteRule ^(\w+)(.html|.htm)?$ index.php?name=$1 [NC] # my rules RewriteRule ^uploads[\W_]files[\W_]public[\W_](.*)?$ index.php?name=download&file=$1 [NC] RewriteRule ^download[\W_](.*)?$ index.php?name=download&op=files&file=$1 [NC] |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25 April 2025 - 19:41 |