基于unicode的XSS是一个问题吗?

wwa*_*waw 4 security unicode xss cjk

也许这对security.stack更好,我不确定,但问题是:

我最近遇到一个博客声称?????????????????????????将被解析为实际<script>.但是,在我最近的Chrome测试中,情况并非如此.有没有人听说过将浏览器解析为真正的标记?如果是这样,那么我不知道如何减轻它,因为可能有其他人而不仅仅是'?'担心,而且我知道我不会通过所有的unicode来枚举它们.

Juk*_*ela 9

这将直接违反HTML规范.通过它们,标记有效字符是Ascii字符,而像U + FF1C FULLWIDTH LESS-THAN SIGN"<"这样的字符只是没有特殊意义的数据字符.浏览器需要额外的代码才能将全宽字符映射到Ascii(作为临时映射或者例如通过归一化到NFKD或NFCKC),但是没有理由认为他们会做这样的事情,而不是有理由认为他们可以开始将"["映射到"<".

因此,一个声称不同的博客只是描述了某人发明但没有真正理由的可能性.您通常可以从给出的参考和演示中看到这一点.(也就是说,从没有他们.)

围绕Unicode字符肯定存在安全问题看起来彼此相似,但是这是人类错误地将一个字符用于另一个字符的问题,即使它们内部完全不同,例如"<"表示"<"(因此例如看到HTML源代码中的字符串作为script元素,即使它不是)或"а"代表"a"(具有相同外观的拉丁字母的西里尔字母).也就是说,即使程序将它们视为不同,人们也可能看到字符相同.