Как скрыть реальное местоположение файла?

kvf77

Red Devil
Как скрыть реальное местоположение файла?

Есть коммерческий сайт (продаются документы с нормативами по строительству), необходимо скрыть от заплатившего пользователя реальное местоположение файла, чтобы он не мог потом по прямой ссылке скачивать его много раз и не мог нигде оставлять прямую ссылку. Как это реализовать? скажем, чтобы ссылка выглядела www.my-site.ru/dfgdfgdfgdf/doc.doc
Иначе при наведении на ссылку видно откуда файл качается. Как это реализовать. Авторизация идет через сессии.
 

HEm

Сетевой бобер
второй вариант - скрипт даунлоада, который проверяет в сессии логин/пароль и соответственно дает скачать только один раз
кстати, только что ( http://phpclub.net/talk/showthread.php?s=&postid=266056 ) интересовался в другом топике - а зачем запрещать скачивать один раз уже скачанный файл? если инфа в нем меняется то правильней будет менять его имя
а с запретом тебе еще придется обдумывать как бы твоя защита не помешала бы ему скачать файл вообще (если файл большой а канал у клиента плохой и скачивает он его не весь сразу а с докачкой)
 

kvf77

Red Devil
К сожалению, эти документы востребованы и не все они ЧАСТО меняются. И мы сталкиваемся постоянно с тем, что скачавший помещает в сети прямые линки на файл и их может качать каждый желающий, а это не приемлемо. Мод реврите хостером не поддерживается к сожалению.

Автор оригинала: HEm
второй вариант - скрипт даунлоада, который проверяет в сессии логин/пароль и соответственно дает скачать только один раз

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

кстати, только что ( http://phpclub.net/talk/showthread.php?s=&postid=266056 ) интересовался в другом топике - а зачем запрещать скачивать один раз уже скачанный файл? если инфа в нем меняется то правильней будет менять его имя
а с запретом тебе еще придется обдумывать как бы твоя защита не помешала бы ему скачать файл вообще (если файл большой а канал у клиента плохой и скачивает он его не весь сразу а с докачкой)
 

Altex

Новичок
Что же у тебя за авторизация такая, которую можно обойти прямой ссылкой??
 

Admiral

Guest
PHP:
<?
if ($authorized = true) {
	header("Content-type: image/gif");
	readfile("pics/golaya_devushka.png");
} else {
	header("Content-type: image/gif");
	readfile("pics/go_away.png");
}
?>
думаю смысл понятен... пишешь это в файл download.php (к примеру) и в зависимости от каких-то условий либо отдаешь нужный файл клиенту, либо нет.
 

martinelli

Новичок
можно еще таким способом
<a class=brick href="
download.php" target = '_blank'>


содержание download.php
<?$realfilename="../www/data/name.zip";
$filename_for_client= "name.zip"
header("Cache-control: private");
header("Content-type: application/force-download");
header("Content-Length: ".filesize($realfilename));
header("Content-Disposition: filename=".$filename_for_client);
$r= readfile($realfilename);
?>
 

Ямерт

The Old One
Stepan96 - простите, каким образом тут спасает mod_rewrite?
А тема обсуждалась очень много раз, так что поиск поможет однозначно.
 

VaDima

Guest
2 Admiral и др. о ссылках с других сайтов:

Код:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^[url]http://[/url](www\.)?microsoft.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ [url]http://www.microsoft.com/billy.gif[/url] [R,L]
Другое решение повторного скача:
Для использования файла необходима активация (по телефону итд). Надо подумать, как ее реализовать для *.doc файлов, например :).

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

kvf77

Red Devil
А вообще-то, нет таких способов защиты, которые нельзя было бы обойти. В принципе. Поэтому часто имеет смысл заняться не формой защищаемой информации, а ее "содержанием".

У меня нет задачи защитить файлы, у меня задача не дать их скачивать по старой ссылке и не дать возможность выкладывать в инете прямые ссылки на файл.
 
Сверху