Как ограничить доступ к файлу или файлам с помощью .htaccess?
Автор вопроса: ThNОтветов: 4
Я хочу ограничить доступ к файлу или файлам с помощью файла .htaccess. По сути, никто не должен иметь возможность загружать файл (ы), используя прямую ссылку на файл. Однако файл должен быть доступен с моего веб-сайта.
Например, скажем, у меня есть файл под названием Presentation.ppt. Я хочу, чтобы посетитель имел доступ к нему через мой веб-сайт, но если они попытаются загрузить его или получить к нему доступ по прямой ссылке, сервер должен отклонить запрос.
Можно ли это сделать с помощью .htaccess?
Заранее спасибо,
Когда вы говорите через мой веб-сайт, что именно вы имеете в виду? Использует ли ваш сайт особые формы телепатии, а не URL-адреса для доступа к файлу? Lior Cohen 28.09.2012
@LiorCohen, нет, сэр. Я имею в виду, что этот файл должен быть доступен только через мою веб-страницу или файл (ы) HTML, а не через URL-адрес прямой ссылки. ThN 28.09.2012
Вы можете запретить доступ к каталогу для каждого IPA, кроме сервера:
<Directory /dir/of/presentation>
Order Allow,Deny
Allow from 127.0.0.1
Deny from All
</Directory>
Как вы отметили, эта дурацкая работа.
Как насчет использования Mod Rewrite с правилом, которое отображает / dir / of / presentation / * на запрещенную страницу. Тогда прямая ссылка работать не будет. Запрос на http://site/content/presentation.ppt может быть перенаправлен на http://site/forbidden.html
Внутри вы можете сделать ссылку на http://authorizedRequest/presentation.ppt сопоставить с http://site/content/presentation.ppt
Это просто безопасность через безвестность. Это не помешает кому-либо ввести ваш "секретный" URI напрямую в браузер.
Ответ 2 · рейтинг 1 · Jon Lin
Можно ли это сделать с помощью .htaccess?
Это возможно, но есть способы обойти это. Вам нужно проверить ссылку, отправленную браузером, но любой может подделать это, а иногда браузер может даже не включать ссылку.
Если вы пытаетесь защитить файл Presentation.ppt, поместите эти правила в файл htaccess в корне вашего документа:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^(https?://)?your_website.com
RewriteRule ^/?path/to/Presentation.ppt - [L,F]
Если вы хотите защитить папку /path/images/, тогда:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^(https?://)?your_website.com
RewriteRule ^/?path/images - [L,F]
Ответ 3 · рейтинг 1 · ThN
Спасибо всем за ответы. Я испробовал все ваши предложения, но все равно не смог заставить их работать. Однако я нашел решение, которое действительно работает.
Шаг 1. Отключите или отключите индексы параметров на своем веб-сервере, удалив индексы слов, оставив все остальное без изменений. В некоторых случаях это можно сделать с помощью файла .htaccess. Если вы не можете сделать это с помощью .htaccess, вам придется искать файл httpd.conf на своем сервере. Обычно он находится в etc / apache / httpd.conf или etc / httpd / conf / httpd.conf. Как только вы его найдете, отключите эту опцию там.
Шаг 2: Создайте папку в папке своей веб-страницы и назовите ее как хотите, но убедитесь, что ее сложно угадать или что она очевидна (например, Joe33CompanyOCT2MeBoss). Затем переместите в эту папку файлы, которые вы хотите скрыть или защитить от посетителей.
Шаг 3. В файле robot.txt запретите всем ботам или сканерам индексировать вашу папку или файлы в этой папке, введя "Запретить имя вашей папки".
Шаг 4: Затем вам нужно будет создать файл PHP, используя аналогичный приведенный ниже код. Приведенный ниже код приведет к принудительной загрузке.
Таким образом, прямой путь к файлу скрыт от вашего посетителя, и даже если они могут загрузить файл напрямую, они просто не знают фактического URL-адреса файла, потому что код принудительной загрузки php не показывает фактический путь к файлу. Итак, теперь мои посетители моего веб-сайта должны пройти через мою веб-страницу для загрузки этого файла, а не напрямую.
Следующие вопросы о stackoverflow очень помогли мне решить мои проблемы с программированием. Спасибо,
Самый простой (хотя и небезупречный) - перенаправить пользовательский агент, когда HTTP_REFERER неверен. Это можно сделать с помощью mod_rewrite в конфигурации сервера или (второй вариант) внутри файла, подобного .htaccess. Это помогает против простого хотлинкинга (ссылки, ссылающиеся на ваш файл по URL-адресу).
Вы должны прочитать прекрасную документацию по моапачам d_rewrite.