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