我有一个可通过HTTPS和HTTP使用的网站(运行第三方应用)。它允许人们使用基本身份验证登录。我试图通过HTTPS而不是HTTP来强制所有登录。
应用程序奇怪,因为身份验证“领域”是域(/)的根,并且基于查询字符串参数而不是URL路径返回401s。我想我已经正确设置了RewriteRules,以便任何可能导致401的请求首先被重定向到HTTPS。但是,我担心在登录到安全站点之后,如果用户以某种方式导航回HTTP版本,浏览器仍会发送授权标题(现在未加密)而不会看到401,因为它们都是相同的域/具有/相同/路径/结构。也就是说,我担心RFC 2617中的这种行为:
我应该担心吗?或者切换协议(https到http)是否会阻止浏览器发送这些抢占式身份验证头?客户端可以抢先发送相应的授权标头,其中包含该空间中的资源请求,而不会从服务器收到其他质询。
答案 0 :(得分:0)
我们在应用程序中大量使用基本身份验证。当然全部使用https:)
浏览器有一个很好的沙箱模型,他们知道当协议改变时,目标机器可能不再相同了。您不必担心浏览器提交身份验证信息。
即使他们遇到最初的401,他们仍然会要求用户输入用户名/密码对。