Javascript Unity Web游戏易受跨站点脚本影响吗

Javascript Unity Web游戏易受跨站点脚本影响吗,javascript,html,xss,unity-webgl,Javascript,Html,Xss,Unity Webgl,专门为网络编译的Unity游戏 由于Unity的web exporter以HTML5为目标,这是否会使其容易受到XSS攻击。比如说,有一个多人游戏,用户可以输入并保存文本,游戏中的所有玩家都可以查看这些文本。恶意用户是否能够注入一些javascript,然后在运行游戏的所有客户端中执行,这些客户端可以看到输入的文本?答案在很大程度上取决于您的服务器的设置方式,但一般来说,您发送到服务器并处理的任何数据未经清理都会使其受到XSS攻击。同样,这取决于您如何处理这些数据,但始终对数据进行清理是一种很好

专门为网络编译的Unity游戏


由于Unity的web exporter以HTML5为目标,这是否会使其容易受到XSS攻击。比如说,有一个多人游戏,用户可以输入并保存文本,游戏中的所有玩家都可以查看这些文本。恶意用户是否能够注入一些javascript,然后在运行游戏的所有客户端中执行,这些客户端可以看到输入的文本?

答案在很大程度上取决于您的服务器的设置方式,但一般来说,您发送到服务器并处理的任何数据未经清理都会使其受到XSS攻击。同样,这取决于您如何处理这些数据,但始终对数据进行清理是一种很好的做法。这里没有太特定于WebGL的内容,除非您正在服务器中运行WebGL实例来处理该数据。

是的,在某种程度上。如果您允许未初始化的代码进入您的网页,无论是JS或WebGL着色器还是任何东西,它都可以并且将执行并利用您的用户

话虽如此,我从未听说过WebGL被用于XSS。在某些方面,可能是因为在页面上注入一个小脚本比启动并运行一个完整的着色器要容易一些(而且人们已经做了很长时间)。更重要的是,XSS攻击通常是从用户那里窃取信息,或者让他们自动“采取”未经授权的行动,或者类似的行为。使用大量的GPU能力对于实现XSS黑客的目标来说并没有多大用处

如果我们真的看到WebGL在XSS攻击中被使用,我猜它可能是一种加密挖掘方案,因为这是GPU拥有的处理能力所带来的为数不多的好处之一



为了缓解这种情况,像所有XS一样,清理,清理,清理确保从客户端到服务器再到客户端的任何步骤都不能让用户在该框中输入的内容自行执行任何内容,如Javascript、SQL、WebGL等等。

XSS只有在加载带有未初始化用户输入的HTML模板并将生成的HTML发送给客户端时才可行。如果只呈现用户输入,而不执行用户输入,那么应该不会有任何问题。请记住,从这个意义上讲,浏览器执行HTML,但浏览器不能“执行”通过WebGL呈现的内容。只是不要做一些愚蠢的事情,比如将未初始化的用户输入注入WebGL着色器。这个问题与WebGL完全无关。提问者使用Unity极为糟糕的命名选择作为Unity导出到HTML5的功能,因此几乎所有关于导出路径的问题都被错误标记,提问者不知道它们的术语是错误的。从Unity导出到HTML5的游戏XSS问题与任何其他HTML5页面没有什么不同。没有更多,也没有更少。@gman感谢您澄清,据我所知,Unity的网络游戏是建立在WebGL之上的,您认为我的问题更关注Unity是正确的。我将编辑这个问题来澄清这一点。Unity的网络游戏是建立在HTML5之上的。Unity错误地称为tbat WebGL。Unity web游戏使用HTML5的功能,包括web音频、web组装、GamePad API、JavaScript、全屏API、指针锁定API、Blob API、XMLHTTPRequest API、WebGL API和其他API,所有这些都是HTML5的一部分。如果Unity实际导出到WebGL,则它无法加载文件,也无法播放声音,也无法从鼠标、键盘、触摸屏获取用户输入,GAMEPAD等,因为WebGL不做任何事情,所以认为一个点是避免使用来自用户输入的字符串串在一起创建着色器,因为如果WebGL实现中存在任何漏洞,那么这可能是一个潜在的攻击向量,直接访问GPU。如果你可以跨脚本,那么你可以做任何你想做的事情。这意味着创建您自己的WebGL上下文或音频上下文或工作线程等。我不确定是谁对这个问题收到的每个答案都投了反对票,但如果您对我们如何改进答案有更好的答案或建议,我很乐意听他们说。