【问题标题】:Can I access the filesystem with Google NaCl?我可以使用 Google NaCl 访问文件系统吗?
【发布时间】:2011-12-10 13:53:19
【问题描述】:

由于 Google NaCl 是 C++,我能以某种方式访问​​文件系统吗?如果我要创建游戏或桌面应用程序,这非常需要。

【问题讨论】:

  • 防止程序这样做是 NaCl 的全部意义所在。您只能访问磁盘的隔离存储区域。非常类似于 HTML5 的 localStorage 对象。
  • @HansPassant 你是说 HTML5 的文件系统? localStorage 完全不同。无论如何,因此 NaCl 不提供此功能。那么我想我们需要等待其他一些替代方案。
  • @rFactor HTML5 显然可以从本地文件系统读取,但用户必须从“打开”对话框中选择文件。要写入必须完成“另存为...”操作。如果 NaCl 自己没有能力做这些事情,它可以绑定到 HTML5 让它做这些事情。这些示例显示他们来回传递数据:developers.google.com/native-client/sdk/examples
  • @HostileFork,“另存为”与具有文件写入权限不同。 “另存为”根本无法扩展,因为它需要用户操作。想象一下,您需要将 20 个文件写入指定文件夹,告诉用户右键单击并“另存为”20 次没有可用性意义。读取权限也是如此。
  • 我认为潜在的问题是......如果我们愿意忽略(希望可以忽略不计)速度下降,那么像 Eclipse 这样的桌面应用程序能否通过 NaCl/PNaCl 移植到网络?

标签: c++ google-chrome filesystems google-nativeclient


【解决方案1】:

由于安全限制,NaCl 不允许您只打开磁盘上的任何文件夹。

但是,它确实授予访问沙盒、混淆文件系统的能力。

您可以查看最新 SDK 中的 PONG 示例,了解如何使用 FileSystemAPI 的示例。

此外,此页面是了解文件系统工作原理的良好起点: https://developers.google.com/native-client/beta-docs/fileIO

~主要

【讨论】:

    【解决方案2】:

    是的,但这种访问据说是安全的,并且只能访问沙盒文件系统。显然,您甚至可以拨打mmap 电话。会出什么问题? :-)

    除了下载附带的任何数据文件之外,额外的磁盘配额是一种“应用程序权限”,您必须在安装某些东西时“批准”。范围从 0 到无限制。

    【讨论】:

    • ActiveX 的提及让人分心,我将其编辑了。重点是我认为“沙盒”原始系统服务通常做得很差......即使在虚拟机中也存在安全问题,如果您有一个运行不同作者的多个服务的云主机,他们可能会泄漏和黑客从一个影响另一个。我质疑这样的事情在客户端系统上运行时是否可以既完整安全......它是一种或另一种。出于浏览目的,这完全是为了实现“原生性”而做出的妥协,我认为这里没有出色的设计。
    • 您的回答和评论是直觉的 FUD,而不是事实。 “其他人做错了,他们可能也做错了”是没有成效的。我建议你深入研究实现,看看安全研究人员对 NaCl 做了什么,并通过 CVE 进行检查。 NaCl 甚至在 Chrome 漏洞赏金计划中,如果您发现缺陷,您将获得报酬。 @colt-mcanlis 的回答在这里更有帮助。
    • @JFBastien 不,错。这是对本质上更复杂的安全和抽象事物的观察。也许您认为现在我无法在没有 JavaScript 和千兆字节的下载和间谍软件的情况下阅读 Web 上的文章,这太美妙了。也许你是那种当他们陷入“window.open()”时没有问题的人——他们甚至无法做到这一点。我认为给这些人提供 mmap 并不是一个好主意(因为......你是如何实现它的,你是如何保护它的?),并且说“他们会为每个 bug 付钱”表明这是你的思考问题——不是我。
    • 您似乎将 Stack Overflow(提供有用问答的地方)与肥皂盒混淆了。完全基于直觉,您会进一步对您没有调查过的事情进行肥皂盒咆哮。我很高兴回答另一个关于 如何 NaCl 沙盒或 Chrome 进程沙盒工作的 SO 问题,这将非常有帮助,也许你会有一个坚实的肥皂盒可以站立,而不是当前FUD。
    • @JFBastien,我知道你是一名 chrome 工程师。你是否知道 NaCl/PNaCl 应用程序访问非沙盒文件系统的一些可能解决方案是什么?
    猜你喜欢
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 2022-06-20
    • 2018-04-12
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多