是的,它仍然可能.
例如,假设您的站点将用户输入注入以下位置
如果USER-INPUT
是" ONLOAD="alert('xss')
,这将呈现
无需角括号.
另外,请查看OWASP XSS实验最小编码规则.
对于HTML正文:
HTML实体编码<&
在metatag中指定charset以避免使用UTF7 XSS
对于XHTML正文:
HTML实体编码<&>
限制输入到charset http://www.w3.org/TR/2008/REC-xml-20081126/#charsets
因此,在体内,您只需编码(或删除)通常建议用于防止XSS的字符子集.但是,您无法在属性中执行此操作 - 完整的XSS(跨站点脚本)预防备忘单建议以下内容,并且它们没有最小的替代方法:
除字母数字字符外,使用HTML实体
HH;
格式转义所有字符,包括空格.(HH =十六进制值)
主要是为了涵盖指定属性值的三种方式:
非上市
单引号
双引号
在这三种情况下,以这种方式编码将阻止属性值中的XSS.
还要小心,UTF-7攻击不需要尖括号字符.但是,除非将字符集明确设置为UTF-7,否则在现代浏览器中无法进行此类攻击.
+ADw-script+AD4-alert(document.location)+ADw-/script+AD4-