![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Dec 1999
Сообщений: 85
|
Т.е. мне нужно чтобы можно было загрузить файл только зайдя на страницу "доунлоад.хтм" и кликнув там на линк "доунлоад".
Чтобы пользователь не мог использовать прямой линк на файл (например зип-архив). |
|
|||||
|
еретик
Регистрация: Jan 2001
Адрес: Харьков, Украина
Сообщений: 919
|
держи файлы в базе, и отдавая их пользователю проверяй referrer... вообще - проверяй все, что только сможешь придумать
![]()
__________________
These unidentyfied flying objects, that appeared to display unique characteristics, such as the speed, the record maneuverity and so on, must be studied in the interest of mankind |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Referer защитит только от чайников.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
еретик
Регистрация: Jan 2001
Адрес: Харьков, Украина
Сообщений: 919
|
умный, да?
тогда поясни ему как он может использовать сессии для защиты своих ссылок ![]()
__________________
These unidentyfied flying objects, that appeared to display unique characteristics, such as the speed, the record maneuverity and so on, must be studied in the interest of mankind |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Сессии он тоже не может использовать. Могу даже объяснить -- почему. Я для этого достаточно умный.
![]()
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
Регистрация: Dec 1999
Сообщений: 85
|
А вот что-то типа этого пойдет?
$files=array( file1.zip', 'file2.mp3');
$filenames=array( 'file1.mp3', 'file2.mp3');
$url= "http://www.mysite.net/download/files_folder/";
$referer=ereg_replace( "\?.", "",$HTTP_REFERER);
$thisfile= "http://$HTTP_HOST$PHP_SELF";
if ($referer!=$thisfile){
for ($i=0;$i<count($files);$i++)
echo "<P><A HREF=\"$PHP_SELF?$i\">",$filenames[$i]";
}
else {
$i=$QUERY_STRING;
$total=$url . $files[$i];
Header ( "Content-Type: application/octet-stream");
Header ( "Content-Length: ".filesize($total));
Header( "Content-Disposition: attachment; filename=$filenames[$i]");
readfile($total);
}
|
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Защита от чайника.
Профи запросто подставит тебе любой REFERER, какой сочтет нужным.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
еретик
Регистрация: Jan 2001
Адрес: Харьков, Украина
Сообщений: 919
|
а что если при открытии download.php?filename=filename.zip генерить что то типа filename.zip|suparandomid и хранить его куда нить, ссылку же делать в виде fetchfile.php?id=randomid, и при скачивании запись типа *|* мы удалим. таким образом не посетив download.php человек хрен стянет filename.zip. поставив же ссылку, он тоже обломается, потому что рандомид мы сикспирим через полчаса к примеру.
достаточно помоему надежно.... аль нет?
__________________
These unidentyfied flying objects, that appeared to display unique characteristics, such as the speed, the record maneuverity and so on, must be studied in the interest of mankind |
|
|||||
|
[+1 23.05.11]
Регистрация: Dec 2001
Сообщений: 4,159
|
Общий принцип: нельзя доверять данным, которые передал пользователь.
Соответственно универсального механизма нет в принципе. Можно подобрать пригодный механизм для конкретного случая -- и перечисленные методы каждый по-своему работоспособны. Но автор треда не указал настоящую цель, которую он хочет достичь. Соответственно, нет смысла угадывать.
__________________
GIT d++ s++:++ a C++$ UB++ P++ L+ E+ W+++ N++ w++ O+ M V- t-- 5-- X+ R+++ tv- b+++ D++ |
|
|||||
|
Регистрация: Dec 1999
Сообщений: 85
|
Crazy
Подскажи тогда что-либо пожалуйста. Wave Как мне кажется достаточно надежно... но хз. В принципе мне особенно и не нужно от сильно искушенных людей защищаться, просто чтобы кто попало ссылку на файлы не ставил... |
![]() |
Часовой пояс GMT +4, время: 22:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|