http://a//%%30%30
在Google Chrome浏览器中单击此链接()时,Chrome浏览器会中断并关闭所有标签页和实例。
但是,在某些情况下,我只需要将鼠标悬停在链接上,该选项卡就会崩溃。
当我将鼠标悬停在此链接上时会发生什么?我的意思是,当链接悬停在Chrome上时,Chrome会做什么?
飞机坠毁是由于最近发现的缺陷铬-和其他WebKit浏览器* -具体涉及到或者(!) %%30%30
,%0%30
或%%300
作为URL的一部分,内部全部结束了代表同一符号:空。您可以在此处阅读有关该错误的更多信息。
这不是影响大多数链接的错误,因此您通常不必担心将鼠标悬停在链接上。
注意:
*其他WebKit浏览器包括Safari,Opera,Steam浏览器,Midori,S60(Symbian),Blackberry Browser和Playstation 3的浏览器-但不包括Firefox,Internet Explorer或Edge。
编辑:正如Deltik指出的那样,此错误现已在Chrome 45.0.2454.101中修复。
该问题与URL canonicalizer有关,该URL会在您将鼠标悬停在链接上后立即运行-可能用于在浏览器的状态栏中显示该链接,以及用于预取网页,以便在单击后加载速度更快。
关于URL规范化器的作用:
写入URL时HTML
,可以以诸如/home
或的形式编写../../home
,但是浏览器也需要将此URL转换为具有协议和域的内容,例如http://superuser.com/home
。此外,URL可能包含需要翻译的URL转义,并且这些转义已进行百分比编码,例如。(此处提供了更详尽的URL转义列表)。处理此URL转换的功能最终崩溃了,因为它收到了开发人员未曾期望/处理的输入。%%30%30
以下是解决问题的代码更改的摘要:
正确处理URL路径中有问题的嵌套转义符。
具体来说,如果输入中的转义导致输出URL包含新的转义序列,例如将输入“ %% 30%30”转换为“%00”,则将前导“%”转义为“%25”以确保输出序列不被视为新的有效转义序列。
这确保了第二次对相同的URL进行规范化不会对其进行更改,这对于避免在调试和发行版本中的各个位置避免崩溃和其他错误很重要。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句