Безопасно ли защищать каталог веб-сайта с помощью файла .htaccess? - PullRequest
4 голосов
/ 15 мая 2009

Мне было интересно, является ли защита веб-каталога с помощью файла .htaccess (с помощью файла .htpasswd вне общедоступного веб-корня apache) безопасным способом защиты каталога (и его содержимого).

Может ли кто-нибудь объяснить, что можно и чего нельзя делать для такой защиты?

Ответы [ 4 ]

4 голосов
/ 20 мая 2009

Аутентификация будет проходить без защиты по сети, если вы используете стандартный протокол HTTP. Это не считается безопасным, так как кто-то может прослушать пароль.

Если вы ограничиваете доступ к https, это вполне безопасно. Это будет означать установку и включение модуля apache для зашифрованного по протоколу ssl http-трафика (порт 433, https: // в адресной строке браузера) и отключение стандартного трафика http для этого каталога на порту 80. Имя пользователя и пароль будут ssl зашифрованы. Убедитесь, что вы выбрали хороший пароль (достаточно длинный и сложный, его невозможно угадать или перебор).

Конфигурация Apache может быть сложной, поэтому будьте очень осторожны, чтобы сохранить ее простоту и проверить на возможные ошибки.

Хорошей идеей может быть перенести конфигурацию ограничения доступа из файла .htaccess в основной файл конфигурации apache, если у вас есть знания и контроль над ним. Вам также может быть проще сохранить его в файле .htacces. И «легкий» может быть безопаснее. Делайте это так, как вам кажется простым, безопасным и простым в обслуживании и запоминании.

Это простая настройка для повышения безопасности и защиты от несчастных случаев:

Если на компьютере, где находится защищенный каталог, настроены php и email, вы можете написать простой сценарий тревоги. Просто файл php «alarm.php» с одной строкой и функцией php mail, которая отправляет вам электронное письмо, сообщающее, что защита htaccess не работает.

Если ваш домен и путь к каталогу "http://mybox.example.com/secretdir/alarm.php", вы можете ввести его в браузере на другом компьютере, и вы должны получать это письмо, пока htaccess" открыт ". Если он защищен, вы можете ввести имя пользователя и пароль, и вы также получите почту.

Чтобы сделать из этого автоматическую тревогу, вы можете использовать другое окно Unix, которое пытается получить этот URL каждые 15 минут или около того. Строка для crontab:

* / 15 * * * * user1 wget http://mybox.example.com/secretdir/alarm.php

user1 - пользователь на этом компьютере, которому разрешено запускать wget, и wget должен быть установлен.

Вы можете отключить защиту htaccess в качестве теста и получать почту каждые 15 минут.

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

1 голос
/ 18 мая 2009

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

0 голосов
/ 16 мая 2009

Файл .htaccess довольно удобен, но ... это не защитит Вас от того, кто использует ваш код и читает любые файлы, которые он хочет. Если ваш сайт (даже один небольшой скрипт) будет эксплуатироваться, ни .htaccess, ни другие решения не защитят вас, поскольку хакер получит права пользователя, выполняющего скрипт (обычно www-data).

Это особенно болезненно в CGI, но взломаны и другие скрипты.

0 голосов
/ 15 мая 2009

.htaccess - это довольно стандартный способ изменения конфигурации каталога для ресурсов, обслуживаемых Apache HTTPD, в случаях, когда у вас нет доступа к основному файлу конфигурации / нет корневого доступа.

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

В официальной документации несколько раз упоминается, что по возможности следует избегать использования файлов .htaccess.

Если использование .htaccess является вашим единственным выбором, убедитесь, что вы следуете общим мерам безопасности, как и в основной конфигурации HTTPD, т.е. не допускайте их чтения неавторизованными пользователями, файлы читаются сервером, убедитесь, что список каталогов отключен, всегда убедитесь, что пароль хранится в зашифрованном / хешированном формате и т. д.

Для получения дополнительной информации, пожалуйста, проверьте Apache htaccess учебник

...