使用.htpasswd文件进行HTTP身份验证

时间:2012-06-04 20:17:09

标签: php apache .htpasswd

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

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

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

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

但是,我想避免使用明确的.htaccess文件,而是使用php。

是否有 easy 方法使用php检查.htpasswd文件?如果应该授予访问权限,php可能会“问”apache吗?

1 个答案:

答案 0 :(得分:2)

我怀疑是否有直接的方式来请求apache验证用户身份,但是它的解决方法很少:

  1. 为自己实现缺少的算法:APR1-MD5SHA
  2. shell_exec("htpasswd -nb $user $password")一起使用以生成哈希并检入.htpasswd文件
  3. 在内部接口上设置虚拟服务器,使用.htpasswd文件进行身份验证并对其执行curl调用(使用用户凭据),检查响应标头(授权为200,未授权为4xx)