在iFrame中安全地执行HTML5/Javascript
我正在寻找开发一个网站,以举办HTML5游戏。由于这些游戏有机会包含恶意javascript,我想知道如何设置一个安全的环境来托管它们 似乎用iframe嵌入游戏是答案,但我对网站开发相对较新,所以有一些问题:在iFrame中安全地执行HTML5/Javascript,javascript,security,html,iframe,Javascript,Security,Html,Iframe,我正在寻找开发一个网站,以举办HTML5游戏。由于这些游戏有机会包含恶意javascript,我想知道如何设置一个安全的环境来托管它们 似乎用iframe嵌入游戏是答案,但我对网站开发相对较新,所以有一些问题: 有没有一种简单的方法可以在同一个域上安全地托管游戏,或者 游戏是否必须托管在不同的域中,然后嵌入到iframe中,这样它就不能与父文档交互 如果游戏是在另一个域上执行的,它会以任何恶意方式与该域进行交互吗 跨站点脚本编写和cookie的过度范围将是这里的一个大问题。利用浏览器的同源策略
- 有没有一种简单的方法可以在同一个域上安全地托管游戏,或者
- 游戏是否必须托管在不同的域中,然后嵌入到iframe中,这样它就不能与父文档交互
- 如果游戏是在另一个域上执行的,它会以任何恶意方式与该域进行交互吗
- 确保您的站点从其他域提供给贡献者应用程序。(例如,
vscoolgames.com
)-这会将您的代码的源代码范围与它们的源代码范围分开mycolgames.com
- 确保每个不同的贡献者的应用程序/游戏来自一个唯一的子域(例如,
,bob.mycolgames.com
)-这将有助于分离不同开发者的来源。每个人都需要小心,千万不要将Cookie的范围限定在dave.mycolgames.com
上,否则他们会过度暴露自己.mycolgames.com
如果图形设计要求必须使用iframe,您可以轻松地将所有嵌入式游戏iframe放入www.mycoolgames.com的动态页面中,在该页面中您不会保留任何敏感系统、数据或代码-保留所有用户身份验证系统,CMS系统和数据仅在*.coolgames.com上的应用程序上首先-这是一个很好的问题!在设计基于iframe的托管解决方案时,我问了自己同样的问题 Second-经过短暂的搜索,我发现了
iframe沙盒
属性
TLDR-它使开发人员能够声明哪些安全选项将应用于iframe,从而允许浏览器定义定制的限制范围
所以。。我发现了一篇很棒的文章,它给出了这个特性使用的真实示例,并给出了一些清晰的解释(阅读更多关于这个主题的内容)。简言之:
<iframe sandbox="security options goes here" src="your hosted page"></iframe>
安全选项包括:
- 允许表单允许表单提交
- 允许弹出窗口允许弹出窗口 (window.open()、showModalDialog()、target=“\u blank”等)
- 允许指针锁定允许(意外!)指针锁定
- 允许相同来源 允许文档保持其来源;从中加载的页面 将保留对该来源数据的访问权限
- 允许脚本允许JavaScript执行,还允许功能 自动触发(因为通过 JavaScript)
- 允许顶部导航允许文档跳出 通过导航顶级窗口来创建框架
<iframe sandbox="allow-scripts allow-popups" src="https://mywebsite.com/hosted_page"></iframe>
还值得一提的是,此安全功能得到了高度支持(用于救援)
快乐阅读/编码。。。愿安全部队与您同在:)谢谢!关于子域的信息特别有用。谢谢。我能问一下你最后一句话“我个人会……”是什么意思吗?“你的意思是将网页重定向到游戏所在的网站上吗?”马修·斯考克说,我在打字前就在想。点击劫持的主要风险来自于有人将你的网站植入他们的网站。将其他人的内容放入自己网站的iframe中,不应使您面临太多额外的风险。但我想,完全可以避免使用任何跨域iFrame是很容易的。问题是,我不能在页面上添加广告之类的元素,甚至不能在界面上添加很多元素。我有没有可能收到你的电子邮件?我真的很想更深入地讨论这个问题,并得到澄清。如果你不介意的话,我会非常感激。iframe+secure=问题始终…请阅读这里的一些想法@DmitryBoyko谢谢链接。非常有用。但是,除了使用iframe之外,我还有什么其他选择呢?:)