我想知道是否有办法在现代浏览器上获得CSS风格的XSS?
例如,在较旧的IE浏览器上,以下内容易受攻击:
<div style="width:expression(prompt('XSS'))">发布于 2014-09-01 20:54:23
不是的。正如这个例子完美地说明的,Javascript (或任何脚本)在CSS中没有位置,因此XSS (第二个S用于“脚本”)是不可能的。CSS只应该是声明性的,并且在实现时应该符合W3标准。现在,动态表达式是用calc完成的,它只能计算简单的数学表达式,而不需要诉诸JS引擎。
expression是一种只针对IE的黑客攻击,目的是在W3想出一个替代方案之前,为特定特性提供便利。当calc出现时,expression被否决了。从IE11,在Internet区域中不再支持开始。正是2008年宣布才会以这种方式结束,特别是以“减少攻击表面”为核心原因之一。在比IE11更早的版本中,它已经被支持了很长一段时间了,只是在古怪模式和IE7仿真模式中。
总结: CSS没有Javascript的位置,因此,当在当前的每个浏览器中正确实现时,不能用XSS攻击它。
https://stackoverflow.com/questions/25612661
复制相似问题