沙盒

... 2022-8-15 小于 1 分钟

# 沙盒

在我们所设想的使用情况下,SubQuery节点通常是由一个受信任的主机来管理的。 而用户向节点所提交的 SubQuery 项目代码并不完全可信。

一些恶意代码很有可能攻击主机甚至破坏主机,造成同一主机内其他项目的数据损坏。 因此,我们使用 VM2 (opens new window) 沙盒安全机制来降低风险。 如下:

  • 在受隔离的系统中运行不受信任的代码,这些代码不会访问主机的网络和文件系统,除非通过我们注入沙箱的公共接口。

  • 使用安全的调用方法,并在沙箱之间交换和接受数据。

  • 对许多已知的攻击方法免疫

# 限制

  • 为了限制访问某些内置模块,只有 conflict, buffer crypto,utilpath ,上述代码是白名单。

  • 我们支持使用CommonJSCommonJS库编写的 第三方模块,如@polkadt/*,它们默认使用ESM。

  • 禁止使用HTTPWebSocket的任何模块。

上次编辑于: 2022年8月15日 23:43