.htaccess提示输入密码

时间:2012-07-26 14:03:06

标签: apache .htaccess web

有没有办法设置一个.htaccess文件来提示每次验证?示例:我打开浏览器选项卡,转到受保护的URL,我被提示输入pw。关闭选项卡(主浏览器仍然打开)并重复上述操作并再次提示输入pw。除非我关闭浏览器,否则不会发生这种情况。也许这是一个缓存的事情?

这是我到目前为止所拥有的:

AuthType Basic
AuthName "myName"
AuthUserFile "/home/myDir/.htpasswds/public_html/myName/passwd"
require valid-user

提前致谢。

1 个答案:

答案 0 :(得分:6)

实际上它正在以这种方式工作(简化):

  • 浏览器向您的服务器发送没有凭据的请求
  • Apache响应403错误,因为指定了“require valid-user”
  • 浏览器提示输入用户名&密码
  • 浏览器再次发送请求,此时提供凭据
  • Apache根据AuthUserFile验证凭据并相应地设置“valid-user”
  • 如果一切正常 - 用200状态代码
  • 输出数据
  • 浏览器接收200个代码缓存使用相关域的凭据,直到浏览器会话过期

如您所见 - 问题出现在浏览器中。您无法强制浏览器忘记它用于域的密码。通常你不想 - 例如,如果受密码保护的页面包含图像 - 浏览器将需要每个下载图像的用户名和密码。

但是您可以尝试一些提示:

  • 你可以编写自己的Apache授权处理程序,它只会在每次访问页面时授权用户;但真的很难
  • 您可以使用某种基于表单的身份验证(在php或asp.net等脚本中),而不是依赖于http身份验证;这种方式很灵活
  • 你可以做一个技巧,每次访问受保护的页面时,某种脚本会更改passwd文件中的密码;然后为每个用户提供两个密码,并在每个请求上切换它们;这样浏览器总能记住“错误”的密码;它似乎很疯狂,但这是我能想到的最简单的解决方案: - )