【问题标题】:password protection acting differently in different browsers (with htaccess)密码保护在不同浏览器中的作用不同(使用 htaccess)
【发布时间】:2012-01-20 13:56:59
【问题描述】:

是的,事情是这样的:我正在尝试用密码保护特定文件夹中的某些文件。所有文件都是图像,所以我决定通过在每个文件的开头添加“p_”(用于“私人”)来“标记”我想要保护的文件。这是htaccess:

<FilesMatch "^[pP]_.*">
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
AuthType Basic
AuthName "Password required"
Require valid-user
</FilesMatch>

在这一方面,结果因浏览器而异:

  • Firefox:要求输入一次密码并且工作正常
  • Chrome(最新版):输入有效密码时会反复提示验证框
  • IE8:每次遇到“标记”文件时都要求输入密码

你们可以测试:http://pierre-albiero.com/ip/es/top/imageneslogin:test

我是否在 htaccess 中遗漏了一行或将正则表达式弄错了? 你身边有同样的结果吗?

【问题讨论】:

  • 对我来说,Chrome(第 15 版)会询问一次密码,然后就可以正常工作了。
  • 真的吗?我的是 v16.0.912.75m,你能更新你的并填写我吗?你在其他浏览器上试过了吗,没问题?

标签: regex .htaccess authentication password-protection


【解决方案1】:

这种行为确实很大程度上取决于浏览器。 Web 服务器使用 HTTP 标头标志来指示访问的内容受到保护。然后浏览器可以提交登录名和密码以向网络服务器进行身份验证。

但是由于 HTTP 是无状态的(一旦站点被传输,客户端关闭连接并且网络服务器不再识别客户端),浏览器每次想要下载特定数据时都必须发送身份验证信息。

因此,为了让用户感到舒适,许多浏览器会缓存网站的身份验证信息,这样您就不必一次又一次地为每个项目输入它。当 chrome 反复询问时,可能存在阻止缓存这些密码的设置,或者是您的 chrome 版本中的错误。

(维基百科有一个很好的例子来说明交流中发生的事情:http://en.wikipedia.org/wiki/Basic_access_authentication

我在这里也用 Opera 测试过。当我输入密码时,我可以重复访问图像而无需再次输入密码。然后我删除了缓存并重新加载了网站 -> Opera 再次要求输入密码。

【讨论】:

  • 我明白了。有什么办法可以强制 HTTP 请求持续一段时间,比如 30 秒还是没用?
  • 据我所知,您不能强制缓存客户端的密码。您可能需要查看您的浏览器选项。我再次用我的 Chrome (16.0.912.75 m) 对其进行了测试,它还保存了登录名和密码。因此,您的本地配置可能存在一些问题。
  • 嗯...你也可以试试IE吗?
  • 对不起,我没有安装 IE
猜你喜欢
  • 2013-10-02
  • 1970-01-01
  • 2022-08-08
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 2015-09-25
  • 1970-01-01
  • 2021-10-29
相关资源
最近更新 更多