用户CSS的危险性

4

允许用户使用自定义css风险大吗?

抱歉,问题不够具体。可能的实现方式:提供一个文本框供用户输入自定义css,然后通过js将该css放入一个样式元素<style type="text/css"></style>中。

4个回答

4

是的,存在许多潜在的XSS攻击,主要是通过在背景图像等URL中插入JavaScript。在XSS Cheat Sheet中搜索“style”以获取一些示例。

此外,用户CSS可能会破坏您的站点,例如使导航菜单为0x0像素或将其移动到-1000,-1000。或者CSS本身可能会引用来自其他站点的图像,您无法保证这些图像会继续存在。


1
公平地说,只有在允许用户以其他用户可用的方式更改CSS的情况下,或者如果恶意的Mandy找到了一种方法让用户使用她的恶意CSS时,才会出现这些问题。如果这是一个纯客户端的事情,他们可能会破坏自己对网站的体验,但无所谓。 - jdd

1

这取决于您如何实现该功能。如果您提供一个表单,允许人们选择自己的CSS值,那么存在脏输入的固有风险。


回答是在假设“用户 CSS”意味着允许用户在个人资料页面中更改CSS设置的情况下做出的。 - Tim McNamara

1

所有用户输入都是不可靠的

如果他们编写了一些隐藏或遮盖登录等内容的CSS,会怎样呢?

还有多个问题,例如CSS历史记录攻击、与URL相关的多个XSS漏洞,以及可能尚未被发现的其他问题。

在显示用户输入之前,始终对其进行清理和过滤。


1
如果仅受到CSS影响的用户是提供CSS的用户,则风险不大。任何XSS漏洞只会影响该用户。
一些浏览器允许用户自定义CSS,或者完全忽略它,所以我认为这不是一个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接