Google chrome extension Google原生客户端是如何沙盒的?本机应用程序还是本机客户端?

Google chrome extension Google原生客户端是如何沙盒的?本机应用程序还是本机客户端?,google-chrome-extension,sandbox,google-nativeclient,Google Chrome Extension,Sandbox,Google Nativeclient,我是编写Chrome扩展和NaCl的初学者。我有一个用C编写的应用程序的基本扩展 使用由我的Chrome扩展名调用的C应用程序,我可以自由地从Windows文件系统读/写文件。我还可以在客户机上启动已安装的应用程序。当我可以访问整个文件系统时,这是如何进行沙盒处理的?我的C应用程序称为本机客户端吗? 不确定,也许我误解了沙箱 还有一条评论:例如,我可以看到我的C应用程序被称为本机应用程序。我猜我把它和本地客户端混淆了。如果是的话,谁能解释一下这两者之间的区别 感谢您的评论。您混淆了哪种语言/编译

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

使用由我的Chrome扩展名调用的C应用程序,我可以自由地从Windows文件系统读/写文件。我还可以在客户机上启动已安装的应用程序。当我可以访问整个文件系统时,这是如何进行沙盒处理的?我的C应用程序称为本机客户端吗? 不确定,也许我误解了沙箱

还有一条评论:例如,我可以看到我的C应用程序被称为本机应用程序。我猜我把它和本地客户端混淆了。如果是的话,谁能解释一下这两者之间的区别

感谢您的评论。

您混淆了哪种语言/编译器是独立的,而执行的结果是沙盒,而沙盒不是显式的

扩展可以同时使用这两种功能:它可以使用但不能绑定本机主机,也可以

回答名义上的问题,通过限制语言中允许的内容并使用静态分析来确保代码安全,对代码进行沙盒处理:

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

NaCl沙盒确保代码仅通过安全的、列入白名单的api访问系统资源,并在其限制范围内运行,而不会试图干扰浏览器内部或外部运行的其他代码。 NaCl验证器在运行代码之前静态分析代码,以确保它只使用允许且安全的代码和数据模式。 这些安全措施是对Chrome浏览器中现有沙箱的补充。本机客户端模块始终在具有受限权限的进程中执行。此过程与外部世界之间的唯一交互是通过定义的浏览器界面。由于NaCl沙盒和Chrome沙盒的组合,我们说原生客户端采用了双沙盒设计

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

这只是一个模棱两可的术语,就像应用程序比较:Chrome应用程序也是一个东西

本机消息=使用本机(即浏览器应用程序之外)发送消息

本机客户端是要执行的技术的专有名称,而不是由浏览器解释的脚本


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

它看起来更像是您误解了NaCl。你指的是本地消息吗?实际上我使用的是本地消息。但是,有两个方面正在使用它相互通信。一边是我的Chrome扩展,另一边是我的C应用程序。所以C应用程序不能被称为本机客户端。正当它似乎被称为本机应用程序。如果这两个不同,那么我似乎混淆了这两个。如果有什么区别的话,这两个组件中的C组件将是一个服务器或正式的主机,因为Chrome启动连接,而不是你的应用程序。谢谢你的回答。我可以看到,在您提供的链接中,我的C应用程序被称为本机应用程序。让我们忘掉名字吧。你能给我发一封推荐信,明确说明两者的区别吗。e、 g.您提到本机应用程序不一定是沙盒。你能为我提供一个参考资料吗?提供的链接就是参考资料。原生在这里只是一个模棱两可的术语,就像应用程序比较:Chrome应用程序也是一个东西。本机消息=使用本机(即浏览器应用程序之外)发送消息。本机客户端是执行本机代码的技术的专有名称,而不是由浏览器解释的脚本。本机消息传递与NaCl平台没有明确的关系。