首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌原生客户端是如何被沙箱化的?本地应用程序还是本机客户端?

问谷歌原生客户端是如何被沙箱化的?本地应用程序还是本机客户端?
EN

Stack Overflow用户
提问于 2015-06-29 10:46:43
回答 1查看 565关注 0票数 2

我是一个写Chrome扩展和NaCl的初学者。我有一个用C#编写的应用程序的基本扩展。

使用C#应用程序(我的Chrome扩展名正在调用),我可以自由地从/向我的Windows文件系统读取/写入文件。我还可以在客户机上启动已安装的应用程序。这是如何沙箱,因为我可以访问整个文件系统?我的C#应用程序是一个本地客户端吗?不确定,也许我误解了太极拳。

还有一点评论:我可以从这里中看到,我的C#应用程序被称为“本地应用程序”。我猜我把它和“本地客户”搞混了。如果是的话,谁能解释一下这两者之间的区别。

感谢您的评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-29 11:26:11

您将本地客户端 (它是一种独立的语言/编译器和正在执行的沙箱结果)与本地消息主机 (显式而不是沙箱)混淆。

扩展可以同时使用两种:它可以使用(但不是捆绑)一个本机主机,也可以使用包括NaCl/PNaCl模块。

在回答标题性问题时,通过限制语言中允许的内容并使用静态分析来确保代码安全,代码会被沙箱化:

由于本机客户端允许在客户端计算机上执行本机代码,因此必须执行特殊的安全措施:

  • NaCl沙箱确保代码只通过安全的白化API访问系统资源,并在其限制范围内操作,而不试图干扰在浏览器内或外部运行的其他代码。
  • NaCl验证器在运行代码之前对代码进行静态分析,以确保它只使用允许和安全的代码和数据模式。

这些安全措施是对Chrome浏览器中现有沙箱的补充。本机客户端模块总是在具有受限权限的进程中执行。这个过程和外部世界之间的唯一交互是通过定义的浏览器接口。由于NaCl沙箱和Chrome沙箱的结合,我们认为本地客户端采用双沙箱设计。

例如,您将无法直接访问文件系统,因为标准文件I/O不可用;相反,沙箱提供了一个受限制的版本。

“本地人”在这里只是一个模棱两可的词,就像“应用程序”(比较: Chrome也是一种东西)。

本机消息传递=使用“本机”(即浏览器外部)应用程序的消息传递。

本机客户端是执行“本地代码”的技术的适当名称(与浏览器解释的脚本不同)。

本机消息传递显然与NaCl平台无关。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31113721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档