Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Защита от прямой ссылки
 
 автор: AMK   (01.10.2005 в 20:58)   письмо автору
 
 

Можно ли как-то защититься от прямой ссылки на файл с другого сайта средствами РНР?

   
 
 автор: cheops   (01.10.2005 в 22:56)   письмо автору
 
   для: AMK   (01.10.2005 в 20:58)
 

Это PHP-страница или файл для загрузки?

   
 
 автор: AMK   (02.10.2005 в 11:16)   письмо автору
 
   для: cheops   (01.10.2005 в 22:56)
 

Это файл для загрузки - например zip-архив.

   
 
 автор: cheops   (02.10.2005 в 13:29)   письмо автору
 
   для: AMK   (02.10.2005 в 11:16)
 

Посмотрите ссылки на файлы в разделе downloads - такие ссылки подойдут (они не срабатывают в WinXP SP2) и путь можно всё таки увидить в Opera.

   
 
 автор: AMK   (02.10.2005 в 15:07)   письмо автору
 
   для: cheops   (02.10.2005 в 13:29)
 

А можно создавать и удалять папки со случайными именами и в них копировать файл и потом (по прошествии заданного времени - например 24 часа) удалять их? Я имею ввиду делать все выше описанное средствами РНР? Например создавать папку с именем FgfghGfh12Dddd, помещать в нее файл 1.zip из основной папки с архивами для загрузки и генерировать ссылку типа :

<a href="../FgfghGfh12Dddd/1.zip>Скачать архив</a>

   
 
 автор: cheops   (02.10.2005 в 19:10)   письмо автору
 
   для: AMK   (02.10.2005 в 15:07)
 

Можно и так - у вас на сервере cron имеется?

   
 
 автор: napTu3aH   (02.10.2005 в 19:52)   письмо автору
 
   для: cheops   (02.10.2005 в 19:10)
 

Я конечно не знаю целей, но возможно AMK подойдет такой вариант, который не требует Cron.
При нажатии на ссылку, нужный файл копируетсья в папку "tmp" под рандомным именем. Потом остаетсья перегрузить страницу и добавить файл в заголовок. Когда другой пользователь захочет загрузить этот файл, просто удалять все файлы из папки "tmp".

P.S. Правда я не знаю как будет обстоять дело, если во время загрузки файла одним пользвателем, его захочет загрузить другой...

   
 
 автор: AMK   (02.10.2005 в 21:16)   письмо автору
 
   для: napTu3aH   (02.10.2005 в 19:52)
 

Цель - сэкономить траффик... Уже дважды натыкался в инете на ссылки на архивы с моего сайта.
Уже практически написал скрипт. Единственная трабла - подсчет оставшегося свободного места на серваке - так чтоб не получилось, что все свободное место будет занято этими временно создаваемыми папками. Не могу найти как это сделать...

А крона нету=(

   
 
 автор: napTu3aH   (03.10.2005 в 09:10)   письмо автору
 
   для: AMK   (02.10.2005 в 21:16)
 

>так чтоб не получилось, что все свободное место будет занято этими временно создаваемыми
>папками.
Если возможно сделать, как я предлагаю, то вам не надо будет беспокоиться о кол-ве свободного места. На сервере никогда не должно быть больше 1-го временного файла, т.к. все файлы, которые были в этой папке удаляються перед тем, как создать там файл для текущего пользователя.

   
 
 автор: AMK   (03.10.2005 в 21:52)   письмо автору
 
   для: napTu3aH   (03.10.2005 в 09:10)
 

>На сервере никогда
>не должно быть больше 1-го временного файла, т.к. все файлы,
>которые были в этой папке удаляються перед тем, как создать
>там файл для текущего пользователя.

Т.е? Например заходит чел на сайт, выбирает скачать файл 1.zip, начинает качать. В это же время заходит второй чел и начинает качать файл 2.zip. Выходит что первый чел, который качает файл 1.zip обламывается, т.к. файл 1.zip будет удален? Или для каждого пользователя не может быть создано более одного временного файла?

   
 
 автор: OZ_   (04.10.2005 в 16:14)   письмо автору
 
   для: AMK   (03.10.2005 в 21:52)
 

А можно сделать кривую ссылку, типа dp.php?s=2013554&dir=12&file=25 и выдавать 25-й файл, лежащий в 12-й директории, если сессия 2013554 актуальна (начата на другой странице сайта). Я так делал с картинками - получить путь невозможно. но не знаю, можно ли выдать какой-нибудь файл, кроме картинок и мелодий.

   
 
 автор: napTu3aH   (03.10.2005 в 10:24)   письмо автору
 
   для: AMK   (02.10.2005 в 21:16)
 

>Единственная трабла -
>подсчет оставшегося свободного места на серваке - так чтоб
>не получилось, что все свободное место будет занято этими
>временно создаваемыми папками. Не могу найти как это
>сделать...

Возможно вас заинтересует следующая тема
http://softtime.ru/forum/read.php?id_forum=1&id_theme=7326&page=1

   
 
 автор: Саня_   (01.10.2005 в 23:13)
 
   для: AMK   (01.10.2005 в 20:58)
 

Можно посмотреть HTTP_REFERER, затем просканировать код той страницы на наличие прямой ссылки на этот файл.

   
 
 автор: Loki   (03.10.2005 в 09:29)   письмо автору
 
   для: Саня_   (01.10.2005 в 23:13)
 

Броузер клиента может не передавать рефферер. И что тогда?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования