在哪里放置.htpasswd由PHP生成?

时间:2010-07-26 21:19:53

标签: php apache .htaccess

我正在创建一个基于PHP的Web应用程序,需要使用简单的身份验证。该应用程序安装在Web服务器上,仅用于Web主机/服务器的所有者,因此只有一个用户和密码。我认为创建复杂的登录系统没有意义。我只想创建一个GUI来生成.htaccess和.htpasswd文件以使用Apache的身份验证。它背后的想法是,它应该很简单,但它变成了比我预期更多的工作。我意识到我必须将.htpasswd文件放在安全的地方,这意味着不在Web可访问的目录中。问题是Web服务器通常具有不同的文件系统和权限,那么我在哪里可以将它放在安全的地方?我能够创建一个具有“740”权限的目录,这应该是安全的,据我所知。但是,这很不方便。应用程序实际上应该限制在一个文件夹中,如果需要,还应该是一个迷失的.htpasswd文件。我希望将.htpasswd放在应用程序文件夹中,但我相信如果它被.htaccess文件保护是不可能的,当我尝试它时似乎会导致服务器错误。如果有人有解决方案或更好的地方放置.htpasswd文件,我们将不胜感激!

1 个答案:

答案 0 :(得分:2)

默认情况下,apache应配置为不按此规则提供任何.ht*个文件:

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

因此,将此文件放在任何地方都应该是安全的。

如果遇到服务器错误,请检查mod_auth是否在apache安装中编译/启用,如果您的虚拟主机/ webroot有AllowOverride AuthConfig