针对CVE-2020-11022漏洞,jQuery Team进行了修复。修复手段为将$.htmlPrefilter()方法替换为标识函数,因此传递的HTML字符串现在不再经过htmlPrefilter函数处理。但是这个修复方法仍有一些手段可以绕过,CVE-2020-11023就是针对CVE-2020-11022的绕过。
V 1.2.0 <= jquery < V 3.5.0
绕过使用的是另一个特性,某些特殊的标签在经过html()方法处理时,会由于HTML的特性或浏览器的bug而使得这些标签被移除。
option就是这些特殊标签之一,我们知道option 元素通过位于 select 元素内部来构造一个选择列表,但如果没有select元素,option会被移除。为了解决这个bug,如果传入参数的第一个元素为option,jQuery会新增