我是一个写Chrome扩展和NaCl的初学者。我有一个用C#编写的应用程序的基本扩展。
使用C#应用程序(我的Chrome扩展名正在调用),我可以自由地从/向我的Windows文件系统读取/写入文件。我还可以在客户机上启动已安装的应用程序。这是如何沙箱,因为我可以访问整个文件系统?我的C#应用程序是一个本地客户端吗?不确定,也许我误解了太极拳。
还有一点评论:我可以从这里中看到,我的C#应用程序被称为“本地应用程序”。我猜我把它和“本地客户”搞混了。如果是的话,谁能解释一下这两者之间的区别。
感谢您的评论。
发布于 2015-06-29 11:26:11
您将本地客户端 (它是一种独立的语言/编译器和正在执行的沙箱结果)与本地消息主机 (显式而不是沙箱)混淆。
扩展可以同时使用两种:它可以使用(但不是捆绑)一个本机主机,也可以使用包括NaCl/PNaCl模块。
在回答标题性问题时,通过限制语言中允许的内容并使用静态分析来确保代码安全,代码会被沙箱化:
由于本机客户端允许在客户端计算机上执行本机代码,因此必须执行特殊的安全措施:
这些安全措施是对Chrome浏览器中现有沙箱的补充。本机客户端模块总是在具有受限权限的进程中执行。这个过程和外部世界之间的唯一交互是通过定义的浏览器接口。由于NaCl沙箱和Chrome沙箱的结合,我们认为本地客户端采用双沙箱设计。
例如,您将无法直接访问文件系统,因为标准文件I/O不可用;相反,沙箱提供了一个受限制的版本。
“本地人”在这里只是一个模棱两可的词,就像“应用程序”(比较: Chrome也是一种东西)。
本机消息传递=使用“本机”(即浏览器外部)应用程序的消息传递。
本机客户端是执行“本地代码”的技术的适当名称(与浏览器解释的脚本不同)。
本机消息传递显然与NaCl平台无关。
https://stackoverflow.com/questions/31113721
复制相似问题