Ограничить доступ к папке или файлу с помощью .htaccess с веб-сервером Apache
Как ограничить доступ к папке или файлу с помощью .htaccess? В этом руководстве вы узнаете, как ограничить или заблокировать папку или любой файл с помощью .htaccess с веб-сервером Apache.
Apache по умолчанию разрешает доступ ко всему внутри папки Document Root. Это означает, что все подкаталоги и их содержимое могут быть перечислены и доступны. Однако вы можете использовать .htaccess для повышения безопасности вашего сервера Apache.
.htaccess — это файл конфигурации, который при обнаружении будет выполняться Apache.
Как ограничить доступ к папке или файлу с помощью .htaccess
Существует три наиболее важных способа защиты веб-папок или каталогов и подкаталогов с использованием файла .htaccess:
1. Запретить доступ к самому .htaccess
Откройте файл .htaccess и добавьте следующую строку кода, чтобы предотвратить доступ к самому файлу .htaccess:
# Запретить доступ к .htaccess
<Files .htaccess>
Order allow,deny
Deny from all
</Files>
2. Запретить/отключить индексирование каталогов
Следующая строка в .htaccess удалит индексацию каталогов и заставит сервер ответить запрещенным сообщением 403 ошибкой.
# Отключить просмотр каталога
Options -Indexes
Чтобы просто скрыть все содержимое каталога без сообщения 403 ошибки, используйте директиву IndexIgnore.
# Скрыть содержимое каталогов
IndexIgnore *
Чтобы скрыть только некоторые типы файлов, используйте:
# Скрыть файлы типа .png, .zip, .jpg, .gif и .doc из списка
IndexIgnore *.png *.zip *.jpg *.gif *.doc
3. Запретить доступ к определенным файлам
Даже если вы удалите каталоги и файлы из списка, они все равно будут доступны, если вы введете их полный путь.
Чтобы удалить несанкционированный доступ к некоторым расширениям файлов, используйте:
# Запретить доступ к файлам с расширениями .ini, .psd, .log, .sh
<FilesMatch "\.(ini|psd|log|sh)$">
Order allow,deny
Deny from all
</FilesMatch>
Чтобы предотвратить доступ ко всем именам файлов, начинающимся с точки (.), таким как .htaccess, .htpasswd, .env и другим, используйте:
# Запретить доступ к именам файлов, начинающимся с точки (.)
<FilesMatch "^\.">
Order allow,deny
Deny from all
</FilesMatch>
Вы также можете защитить паролем файлы и каталоги и сохранить пароли в файле .htpasswd.
# Защита файлов паролем
<FilesMatch "^(execute|index|myfile|anotherfile)*$">
AuthType Basic
AuthName "Mypassword"
AuthUserFile <Full Server Path to .htpasswd file>/.htpasswd
Require valid-user
</FilesMatch>
Замените <Full Server Path to .htpasswd file> вашим фактическим путем.
Вы также можете поместить файл .htaccess в каждый подкаталог с определенными переопределениями. Правила доступа могут быть определены непосредственно в основном файле конфигурации Apache httpd.conf. Но если у вас нет доступа к основному конфигурационному файлу (что обычно бывает, если вы используете виртуальный хостинг), вам придется прибегнуть к правилам доступа на основе .htaccess.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.