首页 > 解决方案 > 是否需要清理用户控制的 CSS 选择器?

问题描述

可以滥用用户控制的 CSS 选择器吗?如果可以,应该如何消毒?

具体来说,在这种情况下,我以以下方式将选择器与 jQuery 一起使用$('a').not(userSuppliedSelector),但我也对一般情况感兴趣。

标签: jquerycsscss-selectors

解决方案


如果您实际上将选择器注入 css 文件并且不对用户进行清理,则可以插入任何 css 并完全改变网站的外观。这将类似于 SQL 注入。

如果您只使用示例中的选择器,则不会发生此类事情。用户只能控制选择哪些链接。只是不要在字符串周围放置 eval ;)。不过,糟糕的选择器可能会导致糟糕的性能。

如何获得价值也很重要。举个例子,如果您要从 url 参数中获取选择器并将其注入到 css 文件中,那么有人可以创建一个可以更改页面外观的 url(同时保留证书和基本 url),然后尝试通过向他们发送链接来钓鱼您的用户。

但无论如何,消毒可能是一个好主意。


推荐阅读