Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Webmaster Zone > Web Development
Register

Reply
 
LinkBack Thread Tools
Old 19.11.2003, 22:33   #1
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Question Как запретить direct download?

Уважаемые девелоперы
У меня возникла проблема.
Имеется некий каталог с файлами(mp3), посредством скрипта(download.php) с использованием HEADER-ов юзеры скачивают оттуда фаилы. Но нашлись умники или умницы , которые качают непосредсвенно из фолдера.
1. Мое предположение основывается на лог файлах(Apach). Имеются записи типа "download.php?filename="foo.mp3"' и просто "/фолдер/foo.mp3". Может так и дилжно быт'??? Но я думаю врядле.
2. Как избежать таких даунлоадов ??? Я знаю что на некторых сайтах исползуют RND folder. Как это деается? И можно ли обойтись без этого как нить попроще?
Буду благодарен за любую помощь.
Reply With Quote
Old 20.11.2003, 09:18   #2
¡no pasaran!
 
dolphin's Avatar
 
Join Date: 03 2002
Location: localhost
Age: 35
Posts: 540
Downloads: 0
Uploads: 0
Reputation: 13 | 4
Default Re: Как запретить direct download?

Quote:
Originally posted by Leo

1. Мое предположение основывается на лог файлах(Apach). Имеются записи типа "download.php?filename="foo.mp3"' и просто "/фолдер/foo.mp3". Может так и дилжно быт'??? Но я думаю врядле.
Зря думаешь. Так и должно быть. Естественно, что после редиректа header("Location: ..."); -ом к серверу идет второй запрос непосредственно к сасмому файлу.

Quote:
Originally posted by Leo

2. Как избежать таких даунлоадов ??? Я знаю что на некторых сайтах исползуют RND folder. Как это деается? И можно ли обойтись без этого как нить попроще?
Буду благодарен за любую помощь.
Не знаю, что за зверьтакой. А попроще, ето пропускать через пхп, ну ты это уже проходил, помнишь?
Reply With Quote
Old 20.11.2003, 10:05   #3
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default Re: Как запретить direct download?

Quote:
Originally posted by Leo
Имеется некий каталог с файлами(mp3), посредством скрипта(download.php) с использованием HEADER-ов юзеры скачивают оттуда фаилы. Но нашлись умники или умницы , которые качают непосредсвенно из фолдера.
Я вижу два варианта:
1. В папке где лежат мп3 файлы проверять реферер и если он не вида "download.php?filename=foo.mp3" то выдавать http-403, а если все Ок - то разрешать скачивать файл. Но это на дураков.
2. Напиши (заюзай) антилич:
- как модуль для апача
- как php скрипт (могу дать ссылки)
Reply With Quote
Old 20.11.2003, 10:46   #4
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

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

Это удобно если нужно допускать даунлоад только определенным юзверям - по аутентикации или еще чем то.
Reply With Quote
Old 21.11.2003, 13:18   #5
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Wses pasibo.
Otvechu podrobnee cherz paru chasikov
Reply With Quote
Old 21.11.2003, 17:20   #6
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

To dolphin
U menya v download.php net Header(Location:...)
Tam:
PHP Code:
Header("Accept-Ranges: bytes");
Header("Content-Length:$length");   
Header("Content-type: x-audio/mp3");
Header("Content-Disposition: attachment; filename=$filename");

$f=fopen("music/".$filename,"rb");
fseek($f,$bytes,SEEK_SET);
fpassthru($f); 
Imeeetsya vvidu, chto faily naxodyatsya v papke music.
Eto konechto ne ves' kod. Prosot xochu skazat' chto redirecta net.
Reply With Quote
Old 21.11.2003, 17:24   #7
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

To hayk
Что такое antilich?
Конечно же давай ссылку.
Спасибо.
Reply With Quote
Old 21.11.2003, 17:26   #8
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

To Obelix
Как ето делается ("хтаксессом") ?
Спасибо.
Reply With Quote
Old 21.11.2003, 17:35   #9
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default To ALL

Вот пару строк из логфаила
217.118.66.232 - - [08/Nov/2003:18:02:05 -0400] "GET /music/A-Ha%20-%20Lifelines.mp3 HTTP/1.1" 206 49152
217.118.66.232 - - [08/Nov/2003:18:02:08 -0400] "GET /music/A-Ha%20-%20Lifelines.mp3 HTTP/1.1" 206 57344
217.118.66.232 - - [08/Nov/2003:18:02:09 -0400] "GET /music/A-Ha%20-%20Lifelines.mp3 HTTP/1.1" 206 81920
217.118.66.232 - - [08/Nov/2003:18:02:11 -0400] "GET /music/A-Ha%20-%20Lifelines.mp3 HTTP/1.1" 206 73728
217.118.66.232 - - [08/Nov/2003:18:02:12 -0400] "GET /music/A-Ha%20-%20Lifelines.mp3 HTTP/1.1" 206 65536

и

212.165.126.48 - - [15/Nov/2003:08:50:07 -0400] "GET /download.php?filename=Coolio%2520-%2520Gangsta%27s%2520Paradise.mp3 HTTP/1.0" 206 192548

В чем разница?
Reply With Quote
Old 21.11.2003, 18:15   #10
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Предполагается что у тебя апач стоит. В директорию скидываешь файл с названием .htaccess, в нем то должна быть строка
PHP Code:
deny from all 
Должно решить проблему - к директории из веба доступа не будет.
Reply With Quote
Old 21.11.2003, 18:42   #11
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally posted by Leo
Как ето делается ("хтаксессом")
А что мешает тебе вообще вынести файлы за пределы вебсервера? Ты то к ним обращаешься по файловой системе.
Reply With Quote
Old 21.11.2003, 18:50   #12
Moderator
 
Join Date: 03 2002
Location: Russia
Posts: 123
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally posted by Leo
Что такое antilich?
Конечно же давай ссылку.
Антилич - это система которая не позволяет воровать линки. Например как на взоре.
Посмотри этот класс. Законченым продуктом не назовешь, но руки никак не дойдут доделать.
Reply With Quote
Old 21.11.2003, 21:44   #13
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Quote:
А что мешает тебе вообще вынести файлы за пределы вебсервера? Ты то к ним обращаешься по файловой системе.

Ne mog Ne ya admin servera. Mne prosot hosting dali.


Quote:
Должно решить проблему - к директории из веба доступа не будет.
Da. Permisions byli ne v poryadke
Teper' vrode norma. Budem jdat'

Всем спасибо.
Reply With Quote
Old 22.11.2003, 06:50   #14
панаехавший
 
Obelix's Avatar
 
Join Date: 06 2003
Location: форпост
Age: 30
Posts: 4,007
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

A chto tebe meshaet poprobovat'? Prosto posmotri, dostupa ne doljno bit'.
Reply With Quote
Old 22.11.2003, 07:58   #15
Вечный Студент
 
Leo's Avatar
 
Join Date: 10 2003
Location: Armenia
Age: 36
Posts: 69
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default To Obelix

Delo v tom, chto ya ne znayu, kak oni poluchali dostup. Kakim putem? U menya problema s Apache logami smotri zdes'
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 04:16.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.