我想允许用户在我的网站上提交自定义css。
我知道某些样式组合可能不安全,例如position:absolute
。
然而,如果我们将这些内容包含在position:relative
的div中,上述内容就不会受到影响。
我也听说有一些可能通过css执行脚本,但我无法回想起或想到任何内容。
所以我的问题出现了:
理想情况下,我将编写一个接受style =" *"的内容的函数。标签,并相应地消毒它们。
我还会考虑一些建议,哪种方法会更好:
如果你的火炮中有一些广泛的功能 - 这是吐出它的正确位置! : - )
答案 0 :(得分:0)
您需要定义安全性的含义。如果你的意思是“不要让用户破坏我的布局”,那么我认为你根本不能让用户使用CSS。也许字体,颜色和背景可以让用户改变,但除此之外,你要求麻烦。 (甚至诸如边距和填充之类的东西在任何字段中都可以是“有趣”的,但是在与zindex相结合的情况下也是如此...)作为一般的经验法则,如果有HTML标签(例如<font>
, <i>
等等,那么这里也没关系。
现在,如果您要讨论安全性,以防止跨站点脚本问题,那么您需要禁止任何可能执行代码的css项。 (例如BoltClock的评论表明)
如果我是你,虽然我会遵循评论者的建议,只是不让人们使用CSS - 如果有一些自定义,你希望用户能够使用代码然后让他们进行这些自定义;但不要让他们输入任意代码。人们总是打破这些过滤器,你不太可能抓住每一个可能的角落。