有没有办法在现代浏览器中获得CSS XSS?

Ham*_*msi 6 css browser xss internet-explorer-10

我想知道是否有办法在现代浏览器上获得CSS Style XSS?

例如,在较旧的IE浏览器上,以下内容易受影响:

<div style="width:expression(prompt('XSS'))">
Run Code Online (Sandbox Code Playgroud)

Nie*_*jes 6

否。正如此示例完美说明的那样,JavaScript(或任何脚本)在CSS中没有位置,因此XSS(第二个S用于“脚本”)是不可能的。CSS应该仅是声明性的,并且在实现时应符合W3标准。现在完成了动态表达式,calc它只能求取简单的数学表达式,而无需借助JS引擎。

expression在W3提出替代方案之前,它是仅用于IE的黑客,以促进特定功能。由于calc出现,expression已弃用。从IE11开始,expressionInternet区域不再支持。它于2008宣布将以这种方式结束,特别是将“减少攻击面”作为核心原因之一。在比IE11更旧的版本中,已经有相当长的一段时间了,无论如何它仅在怪癖模式IE7仿真模式下受支持。

总结:CSS没有放置Javascript的位置,因此,如果在当前的每个浏览器中都正确实施,则XSS不能对其进行攻击。