【发布时间】:2012-01-03 22:19:11
【问题描述】:
我们正在为 HTML5 游戏设计一个在线街机游戏。用户可以上传包含他们游戏的 zip 文件。
上传时,服务器会解压缩 zip 文件,并循环检查每个文件的扩展名是否允许:
- .html
- .js
- .png
- .jpg
- .appcache
- .m4a
- .ogg
(必须在导出这些文件的游戏编辑器中制作游戏)。这应该可以防止人们上传 zip、服务器端脚本文件等。
然后将游戏移至我们的静态无 cookie 域 (scirra.net)。当在我们的 scirra.com 页面上玩游戏时,游戏会显示在指向 scirra.net 域的 iframe 中。这应该可以防止恶意 JS 访问 scirra.com cookie。
这种 iframe 技术和白名单是否足够全面,可以防止任何恶意行为?请注意,我们无法真正筛选每个 JS 文件,因此我们应该假设人们会尝试上传恶意 JS。
【问题讨论】:
-
我知道这可能会导致一些问题,但你需要一个类似苹果的审批流程。
-
我认为这还取决于您对哪种类型的安全感兴趣。您是否只对保护您的服务器感兴趣,或者您是否也有兴趣确保您没有向您的游戏玩家托管恶意代码.如果您同时考虑这两种情况,那么您可能需要做更多的工作来验证用户是否正在制作(即使在您的编辑器中)一些可能会利用游戏玩家的狡猾的 JavaScript。
-
@Daniel,这对我们来说并不现实。我们有大量想要使用它的人,并希望有一种方法可以对每个游戏进行沙盒处理,以确保其安全。我只是想知道在不同域的框架中运行的 JS 是否会造成任何损害。
-
@RLH 什么样的 JS 可以利用玩家?我们对两者都感兴趣。
-
@Tom:
window.location = http://somevirusinfestedsite.com对于初学者。while (true) alert('haha');(和它的变种)把另一个放在那里。
标签: javascript security iframe whitelist