谷歌已经决定暂时逆转去除通过跨域iframe的创建浏览器警告窗口和其他提示浏览器的更新,它的后浏览器引来轩然大波,从开发商以及破网站和网络应用。
正如报道的登记册,一个iframe中,这是短期的嵌入式框架,是嵌入另一个网页一个网页的一部分。但是,当 iframe 包含来自不同来源或域的资源时,它被称为跨来源 iframe。
Chromium 团队自去年 3 月以来一直计划限制跨域 iframe 的功能,因为它们是一种安全责任。这是因为它们使广告等嵌入式资源可以在 Chrome 中显示提示,就像来自主机域一样。
在去年 Google Group 发布的Intent to Remove 通知中,一位 Google 工程师解释了跨域 iframe 如何导致欺骗,他说:
“当前的用户体验令人困惑,之前曾导致网站假装消息来自 Chrome 或其他网站的欺骗行为。取消对跨源 iframe 触发 UI 能力的支持不仅可以防止这种欺骗,而且还将进一步努力使对话框更容易被识别为网站的一部分,而不是浏览器的一部分。”
虽然谷歌决定从 Chrome 中删除浏览器警报窗口和提示是善意的,但它的实施却让许多开发人员头疼。
为了防止欺骗,搜索巨头已经禁止跨域 iframe 中的JavaScript代码调用浏览器窗口对象上的警报、提示和确认方法,Web 开发人员经常使用这些方法来显示对话框。然而,这一变化已经破坏了许多网络应用程序并使开发人员感到沮丧,这就是谷歌决定暂时逆转它的原因。尽管如此,该公司计划在未来从同源上下文和跨源上下文中完全删除这些提示机制,以防止它们被滥用。
随着本月早些时候 Chrome 92.0.4515.107 的发布,window.alert、window.prompt 和 window.confirm 从跨域 iframe 中被弃用。这一变化导致许多使用跨域 iframe 向用户显示警报、通知和确认窗口的应用程序出现问题。
为了让开发者有更多时间重写他们的应用程序和网站,Chrome 现在已在 8 月 15 日之前禁用其弃用。