Где разместить .htpasswd, сгенерированный PHP? - PullRequest
0 голосов
/ 27 июля 2010

Я создаю веб-приложение на основе PHP, которое требует простой аутентификации для использования. Приложение предназначено для установки на веб-сервере и используется только как владелец веб-хостинга / сервера, поэтому будет только один пользователь и пароль. Я полагал, что нет смысла создавать сложную систему входа в систему. Я бы просто создал графический интерфейс для генерации файлов .htaccess и .htpasswd, чтобы использовать аутентификацию Apache. Идея заключалась в том, что это должно было быть простым, однако это превращается в большую работу, чем я ожидал. Я понял, что должен поместить файл .htpasswd где-нибудь в безопасном месте, то есть не в веб-доступном каталоге. Проблема в том, что веб-серверы часто имеют разные файловые системы и разрешения, поэтому где я могу разместить их там, где это будет безопасно? Мне удалось создать каталог с разрешениями «740», который должен быть безопасным, насколько я могу судить. Однако это неудобно. Приложение действительно должно быть ограничено одной папкой и, если необходимо, случайным файлом .htpasswd. Я хотел бы поместить .htpasswd в папку приложения, но я считаю, что это невозможно, если он защищен файлом .htaccess, когда я пытался его вызвать серверные ошибки. Если у кого-то есть решение для этого или лучшее место для размещения файла .htpasswd, это будет очень цениться!

1 Ответ

2 голосов
/ 27 июля 2010

По умолчанию apache должен быть настроен так, чтобы не обслуживать никакие файлы .ht* по этому правилу:

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

Так что безопасное размещение этого файла в любом месте.

Есливы сталкиваетесь с ошибками сервера, проверьте на mod_auth, скомпилирован ли он / включен в установке apache и если ваш виртуальный хост / webroot имеет AllowOverride AuthConfig

...