css - 允许自定义 CSS 的危险
问题描述
我正在创建一个允许用户创建自己的子频道的网站。有点像 subreddit(如果你熟悉 reddit)。
我想让它允许子频道管理员上传他们自己的 CSS 文件(具有最大文件大小),这将覆盖其子频道的默认样式。(用户还可以选择退出自定义样式。)
我只听说过一些网站这样做,因此很难获得有关所涉及风险的信息。会不会有任何潜在的安全风险?
我会用 Laravel 做这个,以供参考。
解决方案
Javascript 可以在 CSS 中执行,你必须确保你使用了一些过滤。
我还看到有人用透明像素覆盖了微软控制网站上的整个页面,链接到恶意网站。单击任何地方都会触发攻击者站点的出现。
然而,如果用户只看到他或她自己的 CSS,这可能是安全的,并且他们无法让其他人查看他们所做的事情。否则,某种白名单或降价将起作用。
用户 CSS 也有可能破坏您的网站,例如将导航菜单设置为 0x0 像素或将其移出屏幕至 -1000、-1000。或者 CSS 本身可能会引用来自其他站点的图像,您不能保证这些图像会继续存在。
推荐阅读
- java - 如何阻止项目依赖被 Gradle 中的另一个项目替换?
- python - 为什么我的代码返回 True 而不是 False?
- javascript - 尽管调试器另有说明,为什么这个变量不被认为是 0?
- css - 有没有办法检查用户的浏览器主题是什么颜色?
- java - 使用 getCause().getCause() 时避免 NPE 嵌套异常的条件
- jquery - 基于按钮id的jQuery .click函数包含部分文本
- javascript - 创建反应应用程序在代码重新加载时每隔一段时间随机崩溃
- php - 如何使用 Omnipay 处理退款 - NAB Transact
- laravel - Laravel 6.0 IIS 添加虚拟目录 HTTP 错误 404.0 - 未找到
- c++ - 需要帮助进行回文测试