AntiSlaed CMS
Вход
Логин: Пароль:Забыли пароль?
Запомнить вас на этом компьютере?
Войти скрытым?

Здравствуйте, Гость ( Вход | Регистрация )

> Внимание!

Адрес нашего форума изменился, теперь мы доступны по адресу antislaed.net. Обновите ссылки и закладки, он больше не изменится.


 
Ответить в данную темуНачать новую тему
> Защита контента
Youshi
сообщение Mar 3 2008, 20:27
Сообщение #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 покажется очень сложной задачей, но на самом деле это не совсем так: с опытом придет и понимание, и мастерство. Если вы внимательно читаете документацию, четко представляете необходимые преобразования ссылок и тщательно проверяете написанные вами правила, все будет работать правильно. Иначе и быть не может, не так ли?
Astrix, Вас 2 раз(а) поблагодарили за это сообщение:
3Den, Elf
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Sunvas
сообщение Mar 3 2008, 20:38
Сообщение #2


Фэнат Stamina-ы
Иконка группы

Группа: Разработчики
Сообщений: 2,470
Регистрация:
6.7.2007
Из: (-: Украина :-)
Пользователь №: 268
Спасибо сказали: 992

Вставить ник




Лучше всего, это делать динамические адреса для картинок и все обрабатывать на ПХП.
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Youshi
сообщение Mar 3 2008, 20:40
Сообщение #3


Ю а Зверь! (3-815-407)
Иконка группы

Группа: Разработчики
Сообщений: 1,263
Регистрация:
5.7.2007
Из: Рашен федерашен
Пользователь №: 263
Спасибо сказали: 320

Вставить ник




ЦИТАТА(Sunvas @ Mar 3 2008, 19:38 ) *
Лучше всего, это делать динамические адреса для картинок и все обрабатывать на ПХП.


Бесспорно лучше. Но не все способны это сделать самостоятельно...
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
Elf
сообщение Mar 4 2008, 03:02
Сообщение #4


Владею силой бесмысленых сообщений!
Иконка группы

Группа: Разработчики
Сообщений: 1,040
Регистрация:
6.12.2007
Из: ПиПербуг
Пользователь №: 1,543
Спасибо сказали: 286

Вставить ник




Басое спасибо (IMG:http://antislaed.net/style_emoticons/default/smile.gif)
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение
slartus
сообщение Feb 6 2011, 10:35
Сообщение #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]
Перейти в начало страницы
 
     Выделите текст перед нажатием цитаты
+Цитировать сообщение

Ответить в данную темуНачать новую тему

2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
 

RSS Текстовая версия Сейчас: 25 November 2024 - 10:39
Хостинг предоставлен NetLevel.Ru   Eleanor CMS