Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2013, 18:53   #1
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию Спрятать url скачиваемого файла

Зравствуйте, посоветуйте как можно спрятать url скачиваемого файла?
kuba1981 вне форума Ответить с цитированием
Старый 15.09.2013, 19:05   #2
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Код:
<?php
 function getExtension1($filename) {
    return end(explode(".", $filename));
  }
  
$file='content/load/files/arhiv.rar';
$ex=getExtension1($file);
$mime='application/'.$ex;
header('Content-type:'.$mime);
header('Content-Length: '.filesize($file));
header('Content-Disposition: attachment; filename='.basename($file));
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");// дата в прошлом
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");// HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");// HTTP/1.0
readfile($file);
?>
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 15.09.2013, 19:29   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

От сниффера разве спрячешь что?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.09.2013, 19:30   #4
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Спасибо большое за скрипт, а можно это решить с помощью .htaccess?
kuba1981 вне форума Ответить с цитированием
Старый 15.09.2013, 19:40   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

скачивать по ссылке типа так
get.php?id=120

а в get.php читать из бд имя файла и отдавать скриптов что тут выше привели
ADSoft вне форума Ответить с цитированием
Старый 15.09.2013, 19:42   #6
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Код:
От сниффера разве спрячешь что?
Можно попробовать, урл будет допустим download.php?id=305

Цитата:
а можно это решить с помощью .htaccess?
Можно попробовать написать регулярку в RewriteRule, но это не будет скрытие ссылки, а лишь её перенаправление, то есть файл также можно будет скачивать по постоянной ссылке, просто будет скрыто его реальное местонахождение.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru

Последний раз редактировалось Stilet; 15.09.2013 в 20:27.
grominfo вне форума Ответить с цитированием
Старый 15.09.2013, 20:00   #7
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Я немного обьсню что мне нужно реализовать как смогу))) опыта не очень много , есть админка
Код HTML:
http://adminka
, в ней папка с файлами upload, на поддомене стоит пакет клиент
Код HTML:
http://client.adminka
, я у клиента даю ссылку на файл show.php?file=http://adminka/upload/123.txt, вот мне нужно чтобы клиент не видел реальное местонахождения файла, не знал где находится админка

Последний раз редактировалось kuba1981; 15.09.2013 в 20:07.
kuba1981 вне форума Ответить с цитированием
Старый 15.09.2013, 20:05   #8
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

down.php
Код:
<?php
 function getExtension1($filename) {
    return end(explode(".", $filename));
  }
 
$file='http://adminka/upload/'.$_GET['file'];
$ex=getExtension1($file);
$mime='application/'.$ex;
header('Content-type:'.$mime);
header('Content-Length: '.filesize($file));
header('Content-Disposition: attachment; filename='.basename($file));
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");// дата в прошлом
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");// HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");// HTTP/1.0
readfile($file);
?>
Теперь, ты дашь ему ссылку down.php?file=123.txt , и он никогда не узнает реальное местонахождение файла

В этом случае можно даже запаролить доступ, разрешать скачивание только с определённого ip и так далее. Главное, чтобы сервер разрешал читать файлы с другого сервера, если файл лежит на другом сервере
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru

Последний раз редактировалось Stilet; 15.09.2013 в 20:29.
grominfo вне форума Ответить с цитированием
Старый 15.09.2013, 20:10   #9
kuba1981
Форумчанин
 
Регистрация: 22.08.2012
Сообщений: 155
По умолчанию

Да спасибо я ваш скрипт внедрил все работает, просто просили сделать через .htaccess, но све равно спасибо большое если не получиться оставлю ваше решение, а не обьясните за счет какого заголовка происходит скрытие?
kuba1981 вне форума Ответить с цитированием
Старый 15.09.2013, 20:14   #10
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Цитата:
а не обьясните за счет какого заголовка происходит скрытие?
Где? В скрипте? Там просто идёт чтение файла на сервере, и передача его клиенту непосредственно из файла скрипта, а не по прямой ссылке. То есть, ни в исходном коде, ни в заголовках не будет прямой ссылки на файл.

В .htaccess за изменение ссылок отвечает директива RewriteRule. Копай в сторону неё
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перехват url и инклуд нужного файла. Abuhamed PHP 1 23.09.2011 15:37
ProgressBar, скачивания файла по url serres Общие вопросы .NET 16 13.11.2010 06:16
Спрятать файл внутри другого файла без потери работоспособности обоих V@Noff Общие вопросы Delphi 9 03.11.2009 16:18
Как извлечь имя скачиваемого файла Crazyman Работа с сетью в Delphi 0 01.07.2008 02:34
Размер скачиваемого файла Sanek_ntsk Работа с сетью в Delphi 5 02.03.2008 19:38