Подтвердить что ты не робот

Насколько безопасна защита пароля .htaccess?

Является ли пароль защитой каталога с .htaccess лучшим способом предотвратить его просмотр от несанкционированных пользователей? Существуют ли какие-либо альтернативы защите содержимого каталога, но при этом он становится доступным для людей, прошедших проверку подлинности для просмотра?

Кроме того, не мог ли кто-то попытаться навредить свой путь, вызвав нагрузку на сервер?

4b9b3361

Ответ 1

Несколько замечаний:

Добавление безопасности в .htaccess всегда можно выполнить без .htaccess, используя команды <Directory> в основной конфигурации (или в конфигурации виртуального хоста). Он будет работать быстрее (если вы полностью удалите поддержку .htaccess с помощью AllowOverride None), и вы не рискуете изменить его .htaccess.

Существует несколько способов добавления безопасности в файлы .htaccess, одним из таких способов является использование Basic HTTP Authentification с .htpasswd файлами. Эти файлы .htpasswd не должны находиться в корневом каталоге веб-каталога. Одна из других возможностей заключается в использовании HTTP Digest Authentification с ограничением, которое очень старые браузеры не поддерживают (например, IE6).

Обычно мы сталкиваемся с базовой базой аутентификации HTTP. Это очень слабая защита, просто потому, что она работает. На 1-й запрос вы отклонены, затем ваш браузер попросит вас ввести пароль и логин и запомните эту ассоциацию входа в пароль для запрошенного веб-сервера. Затем для каждого запроса, отправленного на этот веб-сервер до закрытия браузера , имя пользователя и пароль будут добавлены в заголовок запроса, незашифрованный. Просто кодировка base64 применяется к строке "Yourlogin: Yourpassword", чтобы она выглядела как чистая строка ASCII7 и предотвращала проблемы с кодировкой.

Таким образом, любой, кто понюхает ваш запрос (wifi hotspot, человек в середине, локальная сеть, эхо-переключатель и т.д.), будет знать ваш пароль и логин. Плохо. Правило: "

никогда не использовать Basic HTTP Аутентификация, если соединение не является HTTPS (SSL).

Если ваш веб-сервер полностью находится в HTTPS без проблем (см. править внизу), прозрачный текст/пароль зашифровываются SSL.

Для проблемы с грубой силой (и да, некоторые люди могут попытаться переборщить логин/пароль, за исключением того, что вы настроили модуль mod_security, чтобы это предотвратить). Вопрос о безопасности страницы htpasswd довольно ясен:

При использовании алгоритма crypt() обратите внимание, что для формирования пароля используются только первые 8 символов пароля. Если введенный пароль длиннее, дополнительные символы будут отброшены без изменений

и

На платформах Windows и MPE пароли, зашифрованные с помощью htpasswd, ограничены длиной не более 255 символов. Более длинные пароли будут усечены до 255 символов.

Поэтому используйте SHA кодирование хеширования для паролей (даже если оно не соленое).

Другой способ разрешить аутентифицированному пользователю просматривать содержимое каталога - обрабатывать список каталогов и загрузку файлов в вашем приложении (PHP, Tomcat и т.д.), а не с автоматическим списком apache. С точки зрения безопасности, модуль автоматического листинга (mod_autoindex) - это то, чего вы даже не должны иметь на своем запущенном апахе.

Edit

Полный HTTPS-сервер не требуется, если вы хотите защитить только некоторый URL с аутентификацией HTTP. Вам действительно нужно , чтобы все эти защищенные URL-адреса были в https, если не защищенный URL-адрес находится в домене http, заголовки аутентификации не будут использоваться, поскольку это другой домен (и аутентификация заголовки отправляются по домену). Таким образом, вы можете добавить основные правила перенаправления в домене http для этого URL-адреса, возможно, что-то вроде этого:

RedirectMatch 301 ^/secure/(.*)$ https://www.example.com/secure/$1