【问题标题】:Enable apache HTTP basic auth only if response page doesnt have his own basic auth仅当响应页面没有自己的基本身份验证时才启用 apache HTTP 基本身份验证
【发布时间】:2020-05-24 06:48:42
【问题描述】:

我添加了一个使用 Apache 的 HTTP 基本身份验证,以使用 .htaccess 文件访问 PHP 应用程序:

AuthType Basic
AuthName "Secure Area"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
Require valid-user

这对于除了管理面板之外的大多数应用程序都可以正常工作。

因为为了访问管理面板,PHP 应用程序还通过向响应发送WWW-Authenticate HTTP 标头来提供自己的 HTTP 基本身份验证。

所以,当我尝试访问 PHP 应用程序安全区域时,我似乎遇到了 Apache 和 PHP 之间的 HTTP Basic 身份验证冲突。 (两者都单独正常工作)

我正在考虑的解决方案是仅在请求的页面尚未发送WWW-Authenticate 时启用 Apache HTTP Basic 身份验证。

我试过这个没有成功:

AuthType Basic
AuthName "Secure Area"
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
<RequireAll>
  Require valid-user
  Require expr %{HTTP:WWW-Authenticate} =~ m#^$#
</RequireAll>

这会导致尝试进行身份验证的请求无限循环。 有没有可能?

【问题讨论】:

    标签: php apache basic-authentication www-authenticate


    【解决方案1】:

    我认为这行不通。添加 Apache 的身份验证方法时,除非您进行身份验证,否则请求将停止。如果 Apache 没有收到其自身层的身份验证详细信息,则您的 PHP 应用程序不会以任何方式运行。

    【讨论】:

      猜你喜欢
      • 2011-05-05
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 2011-11-12
      • 1970-01-01
      相关资源
      最近更新 更多