контроль загрузки (.htaccess?) - PullRequest
0 голосов
/ 07 августа 2009

Мне нужно защитить файл .zip от загрузки без разрешения.

Я бы хотел предоставить прямую ссылку на скачивание .zip тем, у кого есть доступ к файлам.

<filesmatch .zip>
 order deny, allow
 deny from all
</filesmatch>

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

Ответы [ 2 ]

2 голосов
/ 07 августа 2009

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

Ваш .htaccess будет выглядеть следующим образом:

AuthName "Log in to continue"
AuthType Basic
AuthUserFile /path/to/your/.htpasswd
<limit GET POST>
  require valid-user
</limit>

Ваш .htpasswd должен содержать строку для каждого пользователя, которому разрешено проходить аутентификацию:

test:R.NyWzK/TEEvo

(это строка для имени пользователя: тест, пароль: тест).

Генераторы .htpassword можно найти повсюду в Интернете. Например:

http://home.flash.net/cgi-bin/pw.pl

0 голосов
/ 07 августа 2009

Я на самом деле только что использовал

<FilesMatch .zip>
    order deny, allow
    deny from all
</FilesMatch>

в дополнение к использованию этого небольшого PHP-скрипта при аутентификации пользователя

if($_POST['subDownload']){
    if(file_exists('./photo_sets/photo_set_1.zip')){
        $FileName = "./photo_sets/photo_set_1.zip";
      header("Content-Type: application/x-zip-compressed");
      header("Content-Length: " . filesize($FileName));
      header("Content-Disposition: attachment; filename=\"$FileName\"");
      header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
      readfile($FileName);
    }

кажется, добивается цели ...

...