Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запретить скачку файла с сайта, только для авторизованных пользователей 
:(
    Опции темы
Orient
Дата 11.12.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Здравствуйте

У меня вот какая проблема: запретить неавторизованному пользователю смотреть страницу и скачивать файлы, ссылки на которые хранятся на этой странице. Доступ к странице я могу ограничить с помощью куков или сессии, это я могу. Но вот если в командной строке набрать путь к файлу, то можно спокойно скачать файл, не правда ли? Как я могу это запретить неавторизованным пользователям?

Заранее спасибо, Анатолий
PM MAIL   Вверх
Vaulter
Дата 11.12.2006, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 6
Всего: 22



да ты можешь закрыть доступ к папке файлов самим WEB сервером
подробнее смотри про .htaccess и <directory/>



--------------------
PM MAIL WWW ICQ   Вверх
Aliance
Дата 11.12.2006, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



Думаю, запретить доступ к файлу через .htaccess а через скрипт выдавать его только тем, кому нужно.
PM MAIL WWW ICQ Skype   Вверх
Orient
Дата 12.12.2006, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Толи я поиском не умею пользоваться толи оджно из двух... А не мог бы кто-нибудь сжалиться и примерчик набросать? Для .htaccess обязательно генерить файл с ключами? Без него никак?
PM MAIL   Вверх
Vigoroso
Дата 12.12.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 93
Регистрация: 17.6.2006

Репутация: нет
Всего: нет



эх, мне тоже интересно, киньте хоть ссылочку на инфу по данной теме
PM MAIL   Вверх
Orient
Дата 12.12.2006, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Впринципе, я понял как нужно делать на основе файлов .htaccess и .htpasswd. Только всплыл глупый вопрос: у меня не получается проидентифицироваться с помощью средств браузера. Отлаживваю на своей локальной машине, под виндой.

В .htaccess хранится вот это:
<Files .htpasswd> 
   deny from all 
</Files> 

AuthType Basic   
AuthName "Private zone. Only for administrator!" 
AuthUserFile .htpasswd   
require user admin

Файл .htpasswd создавал с помощью поставляемой вместе с сервером утилиты htpasswd со след. командной строкой: htpasswd -cm .htpasswd admin

Кто-нибудь может подсказать в чем ошибка?
PM MAIL   Вверх
slang
Дата 12.12.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 7.3.2004

Репутация: -1
Всего: 0



Мне кажется, что подобную задачу следует решать немного другим способом используя временные url.
было в теме 


--------------------
Запчасти на иномарки www.avtograd55.ru.
Если есть время - зайдите и посоветуйте что исправить и что доработать.
PM MAIL WWW ICQ   Вверх
Orient
Дата 12.12.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Итак, получилось мне правильно настроить .htaccess, с помощью IE все окейно, авторизуюсь и скачиваю.
А не подскажет ли мне кто-нибудь как мне программно прологиниться? Чтобы клиент прологинился в самой системе, а я его данные скриптом отдал бы Апачу. Я вот написал код, для доступа к страничке, к которой должны иметь доступ только избранные. Страничку получаю без проблем, но при щелчке на ссылку, расположенную на этой страничке, Апач требует авторизации   smile . Как бы мне этого избежать?


Код

    $login = 'admin';
    $password = '1';
    
    function GetFile($url)
    {
        global $login;
        global $password;
        
        $purl = parse_url($url);
        $host = $purl['host'];
        $page = '';
        $headers = '';
    
        if ($socket = fsockopen($host, 80, $errno, $errstr, 30)) {
            
            if (isset($purl['path'])) {
                $headers .= "GET ".$purl['path']." HTTP/1.0\r\n";
            } else {
                $headers .= "GET / HTTP/1.0\r\n";
            }
            
            $headers .= "Accept: */*\r\n";
            $headers .= "Accept-Language: ru\r\n";
            $headers .= "Referer: My Referer\r\n";
            $headers .= "Host: ".$purl['host']."\r\n";
            $headers .= "User-Agent: UserAgent/1.0\r\n";
            $headers .= "Authorization: Basic ".base64_encode( $login.":".$password ) ."\r\n";
            $headers .= "Connection: Close\r\n\r\n";
    
            fputs($socket, $headers);
    
            while (!feof($socket)) {
                $page .= fgets($socket);
            }
            fclose($socket);
    
            $page = substr($page, (strpos($page, "\r\n\r\n") + 4), strlen($page));
    
            return $page;
    
        } else {
            return FALSE;
        }
    }

    $string = GetFile( 'http://localhost/123/get.php' );
        
    echo $string; 
 
PM MAIL   Вверх
Orient
Дата 12.12.2006, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Люди!!! Поможите  smile
PM MAIL   Вверх
Orient
Дата 12.12.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 144
Регистрация: 17.7.2004

Репутация: нет
Всего: нет



Помучавшись, я сделал ссылки вот в таком виде:  http://login:pass@domain/url/. Все логинится, скачивается, но... можно ли как отключить запрос "Вы собираетесь зарегистрироваться на сайте 'localhost' с именем 'admin' "?
PM MAIL   Вверх
alligator
Дата 12.12.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 28.1.2004

Репутация: 1
Всего: 1



лучше сделать отдельный скрипт , каждому скачиваемому фалу присвоить id как это сделать решать тебе , и при обращении к этому скрипту проверять на авторизацию пользователя....
PM MAIL   Вверх
Coder
Дата 13.12.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 13.12.2004

Репутация: нет
Всего: 11



без баз данных можно сделать так: проверяем пользователя (по кукам, переданным данным и т.п.) если проходит, то отдаем пользователю файл под нужным ему именем. на самом деле на сервере файл лежит с запутанным названием - для того чтобы пользователь случайно на него не наткнулся.

Код

  if (is_user_reg()){
  // отдаем пользователю файл для загрузки
  $get_name="downlod_name.zip";
  $true_name="mWhilvs5tY9a9l3oRL83.zip";
  $f_size=filesize($true_name);
  header("Content-type: application/zip");
  header("Content-Disposition: attachment; filename=".$get_name.";");
  header("Accept-Ranges: bytes");
  header("Content-Length: ".$f_size);
  readfile($true_name);
  };


PM MAIL   Вверх
Aliance
Дата 14.12.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 14
Всего: 137



PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0789 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.