В Apache 2.4, При использовании обоих mod_autoindex
и mod_auth_basic
на каталоге, индексации того каталога причины mod_auth_basic
выполнить хэш пароля и поиск с нуля однажды для каждого файла/подкаталога в каталоге.
При использовании строкового хеша устройства хранения данных пароля как дорогостоящий bcrypy это может вызвать огромные задержки. Кроме того, это поведение является ненужным, так как все файлы находятся под теми же настройками аутентификации, и таким образом, пользователь и группы должны только быть подтвержденными однажды. Подтверждение многократно существенно и искусственно увеличивает локальную стоимость хеширования сильного пароля без преимущества безопасности, значительно уменьшая полную безопасность путем принуждения использования более дешевых алгоритмов.
Мой вопрос: Как я могу подавить это поведение?
Как я могу сделать mod_autoindex
выполнить только единственный вызов к библиотеке аутентификации по паролю?
Вот пример, который имеет проблему:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/mycert.crt
SSLCertificateKeyFile /etc/apache2/ssl/mykey.key
<Directory "/webdata/doc">
AuthType basic
AuthName "Safe Documents"
AuthBasicProvider file
AuthUserFile passwd/docuemnts_users.passwd
require valid-user
Options +Indexes
</Directory>
</VirtualHost>
После httpd Apache код обработки запроса , похоже, что это не так. Если я правильно понял, аутентификация / авторизация выполняется один раз для основного запроса.
Модуль mod_autoindex будет работать в выходной цепочке для генерации контента, как только он будет авторизован для этого. Единственный авторизационный код в mod_autoindex.c - это проверить, разрешено ли генерировать индекс.
Если вы профилировали код с отладочными символами и всем остальным, опубликуйте свои выводы.