我想知道是否有办法在现代浏览器上使用CSS Style XSS?
例如,在较旧的IE浏览器中,以下内容易受影响:
<div style="width:expression(prompt('XSS'))">
答案 0 :(得分:6)
没有。正如这个例子完美地说明的那样,Javascript(或任何脚本)在CSS中没有位置,因此XSS(第二个S用于'脚本')是不可能的。 CSS应该只是声明性的,并且在实现时符合W3标准。动态表达式现在使用calc
完成,它只能评估简单的数学表达式,而无需使用JS引擎。
expression
是一个仅限IE浏览器,用于促进特定功能,直到W3提出替代方案。当calc
出现时,expression
已被弃用。从IE11开始,expression
is no longer supported in the Internet Zone。 announced in 2008以这种方式结束,特别是引用'减少攻击面'作为核心原因之一。在比IE11更旧的版本中,它已经有很长一段时间了,只支持 quirks模式和 IE7仿真模式。
总结:CSS没有Javascript的地方,因此在正确实施时不会像使用XSS那样受到攻击,就像在每个当前浏览器中一样。