让用户上传并运行Javascript有什么风险

让用户上传并运行Javascript有什么风险,javascript,security,html,file-upload,xss,Javascript,Security,Html,File Upload,Xss,如果你有一个HTML5游戏机,允许用户上传一个运行HTML5和Javascript游戏的脚本,假设你对他们的输入没有过滤器(除了只允许JS和HTML),那么潜在的安全风险和陷阱是什么 一种不太可能的可能性是,如果游戏很受欢迎,游戏中可能有一个休眠的ddos脚本,如果游戏足够受欢迎,它可以发起ddos攻击 窃取Cookie是另一回事,但如果有人有一个全面的列表或任何其他想法,听到这些想法会很有趣。允许javascript上传一次运行为攻击者打开了很多选择 请参阅(wikipeda)和其他 一般来说

如果你有一个HTML5游戏机,允许用户上传一个运行HTML5和Javascript游戏的脚本,假设你对他们的输入没有过滤器(除了只允许JS和HTML),那么潜在的安全风险和陷阱是什么

一种不太可能的可能性是,如果游戏很受欢迎,游戏中可能有一个休眠的ddos脚本,如果游戏足够受欢迎,它可以发起ddos攻击


窃取Cookie是另一回事,但如果有人有一个全面的列表或任何其他想法,听到这些想法会很有趣。

允许javascript上传一次运行为攻击者打开了很多选择

请参阅(wikipeda)和其他

一般来说-如果您允许,攻击者可以发布任何代码、重定向用户、利用浏览器进行攻击、安装病毒等。

只有我的两分钱


一个风险是,当有人上传一个脚本,将用户重定向到恶意网站,而该网站正在做一些令人讨厌的事情-用户从未打算访问该网站,当然不是通过街机游戏。

查看下面的链接,我发现这些链接有助于理解这些可能性


编写一个获胜的机器人。
然后游戏将很快转向编写更好的机器人来击败其他机器人;)

如果使用另一个域、子域、端口或协议在
iframe
中加载这些脚本,则同源策略将阻止这些脚本读取主页的内容

对于现代浏览器,您可以通过
window.postMessage
设置这些
iframe
和主页之间的字符串通信,对于较旧的浏览器,可以使用
window.name
hack


为了防止cookie被窃取,您可以在主页中设置一个密钥,并将其发送回服务器,以满足每个请求。

哪些用户将运行脚本?只有上传者还是其他人?例如,如果有人,他们可以监听密钥输入并窃取密码。我建议的例子是,这些游戏被上传到一个在线拱廊,任何来自公众的人都可以进行。该游戏可能是一个动态网站的一部分,其中也包含潜在的敏感信息。