0

我有一个可通过 HTTPS 和 HTTP 访问的站点(运行第 3 方应用程序)。它允许人们使用基本身份验证登录。我试图强制所有登录都通过 HTTPS 而不是 HTTP。

该应用程序的奇怪之处在于身份验证“领域”是域 (/) 的根,并且基于查询字符串参数而不是 URL 路径返回 401。我想我已经正确设置了 RewriteRules,以便任何可能导致 401 的请求首先重定向到 HTTPS。但是,我担心登录安全站点后,如果用户以某种方式导航回 HTTP 版本,浏览器仍会发送授权标头(现在未加密)而不会看到 401,因为它与 /same/path 是同一个域/结构体。也就是说,我担心 RFC 2617 中的这种行为:

客户端可以先发制人地发送相应的授权标头以及对该空间中资源的请求,而无需收到来自服务器的另一个挑战。

我应该担心吗?或者切换协议(https 到 http)是否会阻止浏览器发送那些抢占式 auth 标头?

4

1 回答 1

0

我们在应用程序中大量使用基本身份验证。当然都使用 https :)

浏览器有一个很好的沙盒模型,他们知道当协议改变时,目标机器可能不再一样了。您不必担心浏览器提交身份验证信息。

即使他们遇到最初的 401,他们仍然会要求用户输入用户名/密码对。

于 2012-10-12T13:00:42.133 回答