запрет на прямое скачивание файла

Shyroop

Новичок
запрет на прямое скачивание файла

Добрый Вечер!

Проблема такого рода, когда юзер вводит пасс, то может скачать файл в течении 12 часов.(и он может увидет-скопировать линк к файлу) файл передается через download.php?id=12 (к примеру).
но, если ввести линк напрямую, то файл можно скачать без пасспорта...
если htaccess, то вообще никак скачать нельзя...
подскажите плз направление движения, а то я в форуме порылся, там немного другие темы.

Спасибо!
 

SiMM

Новичок
Re: запрет на прямое скачивание файла

Автор оригинала: Shyroop
но, если ввести линк напрямую, то файл можно скачать без пасспорта...
если htaccess, то вообще никак скачать нельзя...
Отсюда должен следовать логичный вывод - отдавай файл скриптом - на форуме эта тема поднималась неоднократно.
 

Shyroop

Новичок
у меня сейчас через
header("Location: ".$filename ."");
скачивает, а надо через
readfile
я правильно понял?
 

Shyroop

Новичок
спасибо!

-~{}~ 27.06.04 02:15:

сделал так как в форуме написано(уже давно)
session_start();
$filename = "http://phpclub.ru/aaaa.wmv";

Header('Content-Type: text/x-csv');
Header('Content-Disposition: inline; filename="'.basename($filename).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
readfile($filename);

но проблеммы это не решает, т.к. если юзер наберет в IE http://phpclub.ru/aaaa.wmv , то скачивание пойдет напрямую, без пасс.:/

Че делат???
 

neko

tеam neko
убрать свое порно в директорию которая лежит выше документ рута, и соотв. напрямую недоступна

-~{}~ 27.06.04 02:23:

либо конкретный дир из которого ты береш файлы закрыть аштиаксессом
 

Shyroop

Новичок
погодь, я че-то парюсь и не могу толкои объяснить.(уже с 20.00 по форуму таскаюсь)
на странице ссылка
echo '<a href="download3.php?fileName=aaaa.wmv">test</a>';
(эту ссылку дают после проверки пасса)
что ему помешает 2 раз етой ссылкой воспользоваться??? даже если дир лежит выше документа рута?(в download3.php прописан же адресс $filename = "home/test/aaaa.wmv";)

как быть?
 

neko

tеam neko
Shyroop

проверять пас в скрипте, и потом уже выдавать
как ты его вообще проверяешь хоть где?
так и в скрипте выдающем файлы проверяй.
 

Shyroop

Новичок
с начала идет проверка... если все ок, то показывается кнопка download(вот как раз с нее то и можно ссылочку взять):((((
 

neko

tеam neko
чучело, как ты первый раз проверку делаешь

вот эту:
с начала идет проверка... если все ок, то показывается кнопка
какие методы используются?

если это .htaccess то просто кладешь свои файлы "под него"
если это не www-authenticate а "своя" идентификация через куки/сессии то просто делаешь еще раз проверку в выдающем файлы скрипте
итд итп
 

Shyroop

Новичок
пасс хранятся в базе. он проверяет есть ли такой и не истекло ли время действия. если все ОК, то он выдает кнопку.
 

neko

tеam neko
А ТЕПЕРЬ В СКРИПТЕ НА КОТОРЫЙ ССЫЛАЕТСЯ КНОПКА ДЕЛАЕШЬ ТАКУЮ ЖЕ ПРОВЕРКУ
 

Shyroop

Новичок
а вот етого я хотел избежать.... подругому никак???
есть еще какие-нить способы???
Спасибо!
 

neko

tеam neko
ну как-то не особо красиво.... или нормально???
ну так ты не кнопке красивую картинку нарисуй и все попрут валом на твой сайт.

в качестве спасиба приму в подарок эпизоды с моникой беллуччи.
 
Сверху