Доступ к exe файлу только с одной страницы . Помогите советом плиз.

Happy Fart
На сайте с 23.08.2006
Offline
33
1007

Я подозреваю, что это можно сделать с помощью referer ,

как то прописав это в htaccess.

Но как?

Буду очень благодарен совету.

Shtogrin
На сайте с 02.11.2006
Offline
95
#1

если реферер не эта страница, то [F]

RewriteCond %{HTTP_REFERER} !^http://site/страница$

RewriteRule путь_к_exe - [F]

www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Vitо
На сайте с 17.07.2007
Offline
25
#2

Но не забывайте, что referer очень просто подделать...

Онлайн школа покера (http://www.pokermoscow.ru/school/)
Shtogrin
На сайте с 02.11.2006
Offline
95
#3
Vitо:
Но не забывайте, что referer очень просто подделать...

Здесь речь идет о борьбе с прямыми ссылками на загрузку с других сайтов. В этом случае реферер подделать невозможно. А для прямой загрузки нет смысла подделывать реферер, так как файл и так в открытом доступе.

Shtogrin
На сайте с 02.11.2006
Offline
95
#4

.htaccess в корне сайта, все относительные пути от корня сайта

1) Проверка реферер для загрузки, если реферер не совпадает, то перенаправляем на страницу загрузки


RewriteCond %{HTTP_REFERER} !^http://site/download.html$
RewriteRule download/file.exe http://site/download.html [R]

2) Проверка реферер для загрузки, если реферер не совпадает, то запрещаем скачивать


RewriteCond %{HTTP_REFERER} !^http://site/download.html$
RewriteRule download/file.exe - [F]

3) Две страницы загрузок, если реферер не совпадает, то перенаправляем на первую страницу загрузки


RewriteCond %{HTTP_REFERER} !^http://site/download1.html$
RewriteCond %{HTTP_REFERER} !^http://site/download2.html$
RewriteRule download/file.exe http://site/download1.html [R]

4) Проверка реферер для загрузки с любой страницы сайта (сайтов)


RewriteCond %{HTTP_REFERER} !^http://site/
RewriteCond %{HTTP_REFERER} !^http://www.site/
RewriteCond %{HTTP_REFERER} !^http://site1/
RewriteRule download/file.exe - [F]

5) Как быть, если надо сделать доступ к нескольким файлам?


RewriteCond %{HTTP_REFERER} !^http://site/download.html$
RewriteRule download/file1.exe - [F]

RewriteCond %{HTTP_REFERER} !^http://site/download.html$
RewriteRule download/file2.exe - [F]

6) Что делать если у меня много файлов - контролировать скриптом и может быть


RewriteCond %{HTTP_REFERER} !^http://site/
RewriteCond %{HTTP_REFERER} !^http://www.site/
RewriteRule (.*).exe - [F]
Happy Fart
На сайте с 23.08.2006
Offline
33
#5

потрясающей глубины знания... ваша осведомленность меня даже пугает :)

пс: спасибо огромное.

для читающих форум поясню - я в личке задал вот такие вопросы:

1. как указывать путь к exe вот здесь:

---

RewriteCond %{HTTP_REFERER} !^http://site/страница$

RewriteRule путь_к_exe - [F]

---

через http://site/exe-файл

или относительно директории сайта?

2. как быть , если страницы, с которых надо сделать файл доступным - две штуки?

поправьте , если не так:

RewriteCond %{HTTP_REFERER} !^http://site/1страница$

RewriteCond %{HTTP_REFERER} !^http://site/2страница$

RewriteRule путь_к_exe - [F]

3. как быть, если надо сделать доступ к файлу с любой страницы определенного сайта?

просто не указывать конкретно страницу, и оставить вот так: RewriteCond %{HTTP_REFERER} !^http://site/

да?

4. как быть, если надо сделать доступ к нескольким файлам ?

поправьте, если не так:

RewriteCond %{HTTP_REFERER} !^http://site/страница$

RewriteRule путь_к_1exe - [F]

RewriteRule путь_к_2exe - [F]

Happy Fart
На сайте с 23.08.2006
Offline
33
#6

Чего то не получается..

Наверно что то не так делаю.

У меня есть сайт site.ru

в нем есть поддомен soft.site.ru

При фтп заходе в панель управления сайтом там высвечичаются папки:

site.ru

.mc

при открытии папки site.ru внутри нее видны папки:

cgi-bin

html

log

shadow

при нажатии на папку html внутри видно следующее (оставлю только нужные для

этого примера файлы и папки)

.htaccess

soft

index.htm

в папке soft:

.htaccess

page77.htm

proga.exe

Мне надо закрыть доступ к proga.exe отовсюду, кроме page77.htm

С поддоменным .htaccess, который в папке soft, делал пункты 1,2,3

С тем .htaccess, который внутри site.ru - делал пункты 3,4,5

1. RewriteCond %{HTTP_REFERER} !^http://soft.site.ru/page77.htm$

RewriteRule download/proga.exe - [F]

2. RewriteCond %{HTTP_REFERER} !^http://soft.site.ru/page77.htm$

RewriteRule proga.exe - [F]

3. RewriteCond %{HTTP_REFERER} !^http://soft.site.ru/page77.htm$

RewriteRule soft/proga.exe - [F]

4. RewriteCond %{HTTP_REFERER} !^http://soft.site.ru/page77.htm$

RewriteRule html/soft/proga.exe - [F]

5. RewriteCond %{HTTP_REFERER} !^http://soft.site.ru/page77.htm$

RewriteRule site.ru/html/soft/proga.exe - [F]

Файл proga.exe все равно продолжает скачиваться.

Правда я не размещал ссылку на него на других сайтах, я просто вбивал адрес

http://soft.site.ru/proga.exe в чистом окне браузера.

Где я допускаю ошибку?

Shtogrin
На сайте с 02.11.2006
Offline
95
#7

Корень сайта site.ru - site.ru/html

.htaccess ничего не добавляем

Корень сайта soft.site.ru site.ru/html/soft

.htaccess сюда пишем относительные пути

RewriteEngine on

RewriteCond %{HTTP_REFERER} !^http://soft.site.ru/page77.htm$

RewriteCond %{HTTP_REFERER} !^http://site.ru/soft/page77.htm$

RewriteRule proga.exe - [F]

Файлов много? Целый поддомен для этих целей.

Happy Fart
На сайте с 23.08.2006
Offline
33
#8

Заработало!

Спасибо еще раз!

:)

А не работало, потому что не было строчки RewriteEngine on в самом начале..

Shtogrin
На сайте с 02.11.2006
Offline
95
#9
Happy Fart:
А не работало, потому что не было строчки RewriteEngine on в самом начале..

типичная ошибка :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий