相关疑难解决方法(0)

XSS攻击和样式属性

已知样式属性XSS攻击如:

<DIV STYLE="width: expression(alert('XSS'));">
Run Code Online (Sandbox Code Playgroud)

要么

<DIV STYLE="background-image: url(javascript:alert('XSS'))">
Run Code Online (Sandbox Code Playgroud)

我见过的所有例子使用了表达式或网址功能 - 基本上就像需要"(和")"这样的功能.

我正在考虑使用过滤样式标签的方法,我会使用以下(近似)语法检查它们:

identifier: [a-zA-Z_][a-zA-Z0-9\-]*
number: [0-9]+
string: '[a-zA-Z_0-9 ]*'
value : identifier | number | string | number + "(em|px)" | number +"%"
entry: identifier ":" value (\s value )*
style: (entry ;)*
Run Code Online (Sandbox Code Playgroud)

所以基本上我允许带有数值的ASCII属性或非常有限的字符串值(基本上是字体名称)不允许使用看起来像调用的任何东西.

问题是这还够好吗?有没有可能做类似的攻击:

<DIV STYLE="this-is-js-property: alert 'XSS';">
Run Code Online (Sandbox Code Playgroud)

并成功?

谁能想到这种测试的XSS漏洞?

说清楚

我需要样式属性,因为许多工具(如TinyMCE)使用它们并过滤无害的样式属性会严重损害功能.

所以我更喜欢通过常见的情况删除所有可能使用@ import,url,expression等的东西.还要确保基本的css语法没问题.

回答

不,由于点击顶级漏洞,它不安全.

html javascript xss coding-style

26
推荐指数
1
解决办法
3万
查看次数

标签 统计

coding-style ×1

html ×1

javascript ×1

xss ×1