0

PHP 提供了使用HTTP-Authentication的可能性。

但是,很难使用 .htpasswd 文件。

有一些脚本可以检查 php 中的 .htpasswd 文件(例如这个)。但是,这些脚本非常复杂,并且其中大多数不支持所有相关的加密类型(例如 MD5,这是程序htpasswd使用的默认值)。

使用标准的 .htaccess 文件会容易得多(只是AuthUserFile <.htpasswd-file>需要)。

但是,我想避免使用显式的 .htaccess 文件并改用 php。

有没有一种简单的方法可以使用 php 检查 .htpasswd 文件?php 是否可以“询问”apache 是否应该授予访问权限?

4

1 回答 1

2

我怀疑是否有直接的方法要求 apache 验证用户,但几乎没有解决方法:

  1. 为自己实现缺失的算法:APR1-MD5 , SHA
  2. 使用 withshell_exec("htpasswd -nb $user $password")生成哈希并签入 .htpasswd 文件
  3. 在使用 .htpasswd 文件对其进行身份验证和执行 curl 调用(使用用户凭据)的内部接口上设置虚拟服务器,检查响应标头(200 表示已授权,4xx 表示未授权)
于 2012-06-04T21:15:49.180 回答