我想创建一个网站,用户可以在其中上传自己的画布动画供其他人查看。与此相关的安全风险影响是什么?有没有一种简单的方法可以确保我得到的只是画布功能而不是恶意代码片段?想法?谢谢你。
编辑:如果我将每个动画放在一个单独的子域中怎么办?有没有办法在用户上传时自动创建子域?
我想创建一个网站,用户可以在其中上传自己的画布动画供其他人查看。与此相关的安全风险影响是什么?有没有一种简单的方法可以确保我得到的只是画布功能而不是恶意代码片段?想法?谢谢你。
编辑:如果我将每个动画放在一个单独的子域中怎么办?有没有办法在用户上传时自动创建子域?
Javascript 是一种非常灵活的语言,除非您对其进行非常深入的分析,否则几乎不可能确定实际代码正在执行什么。如果您允许上传 Javascript,您可以获得任何东西,并且您尝试使用的大部分保护都将不起作用。
在您的情况下,您可以做的是允许人们以某种自定义语言上传动画序列,您在上传后用 Javascript 进行转换。这样,您可以更好地控制执行的内容。
就具体风险而言,显而易见的风险是创建持续性 XSS 威胁的轻松能力。这可以很容易地做任何事情,从读取用户的 cookie(包括那些用于识别其已验证会话的cookie)到重写页面或修改 CSS。
它还为 CSRF 打开了一扇非常简单的大门,这可能会允许脚本代表受害者发布任意命令。此外,还有点击劫持和制表符等风险 - 可能的漏洞非常广泛!
有一些方法可以减轻这些威胁,但是您允许人们上传任意脚本这一事实本身就是一个巨大的风险。