- Автор темы
- #1
Как сделать так, чтобы при попытке скачивания не с сайта (например путем ввода в браузер готового адреса вида Для просмотра ссылки Войди или Зарегистрируйся), выводилось 403 Forbidden?
Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
SetEnvIf Referer "^http://domain\.com/" ownRef
<Files "download.php">
Order Deny,Allow
Deny from all
Allow from env=ownRef
</Files>
Это легко обойти. У меня брат программист, так вот он писал парсер(я не помню на каком языке), так вот там была функция referer, в ней можно было вставить любой адрес. Так что обойти будет проще простого.Нужно прописать в .htaccess такую конструкцию:
Т.е. разрешать доступ к download.php только тем, у кого в Referer - наш домен.Код:SetEnvIf Referer "^http://domain\.com/" ownRef <Files "download.php"> Order Deny,Allow Deny from all Allow from env=ownRef </Files>
Конструкция работает в Apache 2.2, в старых не проверял.
Также можно написать аналог с использованием mod_rewrite.
Я в курсе, конечно, что referer можно свой подставить. Но обычный пользователь врядли будет этим занимаццоЭто легко обойти. У меня брат программист, так вот он писал парсер(я не помню на каком языке), так вот там была функция referer, в ней можно было вставить любой адрес. Так что обойти будет проще простого.
Options -Indexes
RewriteEngine on
RewriteRule !\.(pdf|doc|xls|txt|gif|jpg|png|zip|tar\.gz)$ downloader.php
$binaryCode = file_get_contents($doc_name);
header("Cache-Control: public, must-revalidate, max-age=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment;filename=$doc_name");
header("Content-Transfer-Encoding: binary ");
Хм, а какое отношение это к сабжу имеет?а если файл >20mg ? не каждый хостинг такое разрешит