为什么现代Web浏览器不再显示HTTP身份验证的“realm”值?

3
当使用HTTP身份验证托管网站时,如果客户端未经过身份验证,服务器将发送401未经授权的响应,包括WWW-Authenticate头。这个头中的一个可选指令是realm

描述受保护区域的字符串。 如果支持允许这种分区的方案,则领域允许服务器对其所保护的区域进行分区,并告知用户需要哪些特定的用户名/密码。

(本人强调)
假设www.example.com需要授权并配置了Test Area的领域值。过去,大多数Web浏览器在收到此类响应时会显示登录对话框,并显示类似“需要授权。位于www.example.com的站点说'Test Area' "的消息。
但是,至少最近版本的Chrome,Firefox和Edge现在都只显示一条通用消息,而不包括领域值。有趣的是,IE仍然显示领域值(以下是所有Windows 10 64位的屏幕截图):

Chrome(v93.0.4577.82)

chrome没有领域值

Firefox(v92.0)

firefox没有领域值

Edge(v93.0.961.52)

edge没有领域值

IE(v11.1411.18362.0)

IE有领域值

我很确定Firefox和Edge曾经显示它。 Chrome可能会在之前停止,但似乎是第一个停止的。由于所有现代浏览器都不显示它,我假设有一些原因..? 我在互联网上搜索了所有内容,但无法弄清楚原因。我有一个使用情况,其中显示领域将对用户有所帮助,因为它将更清晰地说明他们需要使用哪些特定凭据。我知道您不能强制浏览器显示它,但这很烦人。但是,如果有有效的原因不显示它,我将接受该原因。

这与 MongoDB Realm 的一部分 Realm 数据库有什么关系(根据您的标签)? - Jay
@Jay 这并不是 -- 我只是使用了标签“realm”,它可能指代任何名为realm的东西。我想这个词太笼统了,不能成为一个有用的标签。 - dcsmith926
明白了。在SO中,标签是非常具体的元素 - 如果你将鼠标悬停在标签上,它会指示它的用途以及如何应用(和其他有用的信息)。标签是SO如何对问题进行分类,以便将正确的注意力集中在上面,增加您获得有经验的人回答的机会。 - Jay
1个回答

1

原因是这可能会被用于钓鱼攻击,通过在领域中放置一些误导性的消息。 HTTP身份验证的登录对话框是受信任的浏览器UI的一部分,让服务器有机会修改该UI甚至只是显示文本-都存在安全风险。


我甚至没有想到那个,但它完全有道理。谢谢! - dcsmith926

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接