Здравствуйте! На сайте внутри каталога htdocs расположен каталог uploads/docs/ с permission 777, чтобы через админку можно было загружать файлы JPG и PDF. Зарегестрированные пользователи могут просматривать JPG PHP: <?php ... $path= "uploads/docs/"; //INSIDE //$path= "../uploads/docs/"; //OUTSIDE $fext= "jpg"; $fnam= "shema"; $src = $path. $fnam. ".". $fext; $otvet .= "<a href='index.php?page=doc'>".$text['back']."</h3></a><br>"; $otvet .= "<img src='".$src."' alt='doc' align='middle' border='1'><br><br><br>"; ... или скачивать PDF PHP: <?php ... //$path= "uploads/docs/"; // INSIDE $path= "../uploads/docs/"; //OUTSIDE $fext= "pdf"; $fnam= "shema1"; $file_name = $path. $fnam. ".". $fext; $file_size = filesize($file_name); $file_alias = "document.pdf"; header('Content-type: application/pdf'); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".$file_size.""); header('Content-Disposition: attachment; filename=\"'.basename($file_alias).'"'); header("Expires: 0"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); readfile($file_name); exit; # PDF open/save Но и при наборе: адрес сайта/uploads/docs/имя файла, происходит его скачивание. Как защититься? Переношу каталог uploads/docs/ с permission 777 за пределы htdocs. Теперь напрямую не скачать. Что и надо. Но и зарегестрированным пользователям тоже облом на JPG. PDF-ки скачиваются, а JPG почему-то теперь недоступны. Как сделать по уму? Спасибо.
Может лучше использовать .HTaccess ? Например, можно проверять реферер, и если видно что пользователь был зарегистрирован, то давать ему доступ, иначе обламывать ;-) Поддлать реферер ниего не стоит, но большноство пользователей (Непрограммистов) о нем и не знает SetEnvIfNoCase Referer "^http://Ваш_сайт/login.php?OK" local_ref=1 <FilesMatch ".jpg"> Order Allow,Deny Allow from env=local_ref </FilesMatch>