我想允许用户在我的网站上提交自定义 css。
我知道样式的某些组合可能不安全,例如position:absolute
.
然而,如果我们将内容包装在一个带有position:relative
.
我还听说有一些通过 css 执行脚本的可能性,但我想不起来或想不起来。
所以我的问题是:
- 哪些可以被认为是安全的?
- 什么会进入黑名单?
理想情况下,我将编写我的函数来接受 style="*" 标签的内容,并相应地清理它们。
我也会考虑一些建议,什么方法会更好:
- 从黑名单中匹配并过滤掉不安全的属性,
- 或仅允许绕过白名单中包含的那些(尽管列表可能会变得很大)
如果你的火炮有一些广泛的功能 - 这是吐出它的正确地方!:-)