最近发现,WebSocket 工作的协议存在安全漏洞。Adam Barth 演示了一些针对该协议的严重攻击,攻击者可以利用这些攻击来中毒浏览器与互联网之间的缓存。
这是一个对互联网和 WebSocket 构成严重威胁的问题,它不是特定于浏览器的。该协议漏洞还会影响 Java 和 Flash 解决方案。在 Web 环境中,这可能意味着,例如,广泛使用的 JavaScript 文件(如 Google Analytics)可能会被替换为缓存中的恶意软件文件。Google 不会对此负责,而且您也很难追踪该文件的来源,因为它不在您的服务器上。为了避免大量恶意软件无法追踪地出现,我们需要修复该协议。
Firefox 4 和 Opera 中不支持 WebSocket,直到修复安全问题为止
因此,我们决定从 Beta 8 开始 在 Firefox 4 中禁用对 WebSocket 的支持,这是由于协议级的安全问题。Firefox 的 Beta 7 版本支持 -76 版本的协议,该版本与 Chrome 和 Safari 中包含的版本相同。Firefox 4 的 Beta 8 版本将删除该支持。Opera 的 Anne van Kesteren 也宣布 Opera 将取消对 WebSocket 的支持。我们相信其他浏览器开发人员会效仿。
这对开发者来说意味着什么?
现在,您的 WebSocket 解决方案在 Firefox 4 正式版中无法运行。一旦我们拥有一个我们认为安全且稳定的协议版本,我们将在 Firefox 的某个版本中包含它——甚至是在次要更新版本中。该代码将保留在树中以帮助开发,但只有在开发者在 Firefox 中设置隐藏的首选项时才会被激活(Opera 也是如此)。
如果您的代码执行了正确的对象检测,则不会出现任何问题——当用户未启用 WebSocket 时,window.WebSocket
属性将不可用。
正在修复中
Mozilla 仍然对 WebSocket 提供的功能感到兴奋,我们正在与 IETF 共同努力开发新的 WebSocket 协议。
现在,我们正在突破浏览器为用户提供功能的界限——这就是 HTML5 的意义所在。
在推动任何技术的界限时,您都会遇到问题。我们现在遇到的好消息是,我们可以对出现的任何问题做出迅速而有效的反应,并在最终用户受到影响之前修复它们。让全世界升级并修补最终版的浏览器几乎是不可能的,因此,在 Beta 版和夜间版中进行测试和修补是有意义的。
关于 Chris Heilmann
HTML5 和开放 Web 的倡导者。让我们来修复它!
47 条评论