Защита сайта средствами сервера Apache является одним из самых простых и в то же время достаточно надежных способов. В этом случае не нужно досконально продумывать стратегию безопасности, осуществлять ее проектирование и реализацию в PHP-коде. В данном разделе будут подробно описаны шаги и действия, которые необходимо выполнить для защиты сайта, и приведены примеры файлов .htaccess с директивами аутентификации.
Браузер посетителя принимает заголовок с кодом 401 и выводит окно с полями для ввода имени пользователя и пароля. После ввода имени и пароля эти данные отсылаются назад серверу, который проверяет имя пользователя на предмет нахождения в специальном списке, а пароль на соответствие имени, введенного пользователем. Если все верно, то посетитель получает доступ к ресурсу. Кэширование параметров аутентификации (имя, пароль, область действия) обычно осуществляет только в пределах одного сеанса.
При базовой аутентификации имя пользователя и его пароль передаются в сеть в открытом виде в течение всего сеанса, когда посетитель работает с защищенным каталогом. Злоумышленник может перехватить эту информацию, используя сетевой анализатор пакетов. Данный вид аутентификации не должен использоваться там, где нужна реальная защита коммерчески ценной информации.
Web-сервер Apache поддерживает еще один вид защиты - digest-аутентификацию. При digest-аутентификации пароль передается не в открытом виде, а в виде хеш-кода, вычисленного по алгоритму необратимого шифрования MD5. Поэтому пароль, перехваченный при сканировании трафика, практически невозможно подобрать, особенно если он имеет большую длину. Для использования digest-аутентификации на сервере должен быть установлен специальный модуль - mod_auth_digest.