Обратите внимание на несколько вещей:
Добавление защиты в .htaccess всегда можно выполнить без .htaccess, используя инструкции <Directory>
в основной конфигурации (или в конфигурации виртуального хоста).Это пойдет быстрее (если вы полностью удалите поддержку .htaccess с AllowOverride None
), и вы не рискуете, что кто-то изменит ваш .htaccess.
Существует несколько способов повысить безопасность в файлах .htaccess, один изэти способы - с помощью базовой HTTP-аутентификации с файлами .htpasswd
.Эти файлы .htpasswd не должны находиться в корневом каталоге веб-каталога.Другой возможностью является использование HTTP Digest Authentification с ограничением, что очень старые браузеры не будут поддерживать его (например, IE6).
Обычно мы сталкиваемся с базовой HTTP-аутентификацией HTTP.Это очень слабая защита, просто из-за того, как она работает.При первом отклонении запроса ваш браузер запрашивает пароль и логин и запоминает эту привязку логина пароля для запрошенного веб-сервера.Затем для каждого запроса, отправляемого на этот веб-сервер, пока вы не закроете браузер , логин и пароль будут добавлены в заголовок запроса , в незашифрованном виде .К строке 'Yourlogin: Yourpassword' применяется просто кодировка base64, чтобы она выглядела как чистые строки ASCII7 и предотвращала проблемы с кодировкой.
Так что любой, кто анализирует ваш запрос (точка доступа wifi, человек посередине, локальныйсеть, эхо-переключатель и т. д.) будет знать ваш пароль и логин.Плохой.Правило гласит: «
никогда не используйте базовую аутентификацию HTTP, если соединение не HTTPS (SSL).
Если ваш веб-сервер полностью настроен на HTTPS, нет проблем (см. правку внизу), открытый текст / пароль зашифрованы с помощью SSL.
Для решения проблемы перебора (и да, некоторые люди могут попытаться перебором логина / пароля, кроме случаев, когда вы настраиваете модуль mod_security , чтобы предотвратить это) Безопасность на странице htpasswd совершенно ясна:
При использовании алгоритма crypt () обратите внимание, что только первый8 символов пароля используются для формирования пароля. Если предоставленный пароль длиннее, лишние символы будут автоматически отбрасываться
и:
В Windows иПлатформы MPE, пароли, зашифрованные с помощью htpasswd, могут содержать не более 255 символов. Длинные пароли будут обрезаны до 255 символов.
Поэтому используйте SHA кодировка хэширование паролей (даже если оно не является соленым).
Еще один способ позволить аутентифицированному пользователю просматривать содержимое каталога - это обрабатывать список каталогов и загрузку файлов в вашем приложении (PHP, Tomcat,и т.д.), а не с автоматическим листингом apache.С точки зрения безопасности, модуль автоматического перечисления (mod_autoindex) - это то, что вам даже не нужно иметь на работающем apache.
Edit
Полный HTTPS-сервер не требуется, еслиВы хотите защитить только некоторые URL-адреса с помощью аутентификации HTTP.Что вам действительно нужно, это , чтобы все эти защищенные URL-адреса были в https , если незащищенный URL-адрес находится в домене http, заголовки аутентификации не будут использоваться, так как это другой домен (и заголовки аутентификации).отправлены доменом).Таким образом, вы можете добавить основные правила перенаправления в домен http для этих URL, возможно, что-то вроде этого:
RedirectMatch 301 ^/secure/(.*)$ https://www.example.com/secure/$1