安全控制是deno的特色,那么nodejs中有安全控制吗?为什么需要安全控制?
nodejs 没有。
安全控制是 web 的特色,想想浏览器里面的 js 为什么不能访问本地文件。deno 的安全控制来自 web。
浏览器中运行的 js 代码可能来自任何地方,而且都不是我们主动下载运行的,也不一定这些代码都是受信的,但是我们依然敢运行这些代码,是因为浏览器的沙箱机制保证了这些 js 代码不会访问系统资源。
而 deno 的安全机制的思路也来自 web。
再举个通知的例子,现在 web 也好,Android 或者 iOS 系统也是,当我们调用通知功能时,需要用户的主动授权。Deno 的文件系统、环境变量、网络等功能的访问,也是需要用户主动授权,这样 deno 就可以安全的运行来自任何地方的 js/ts/wasm 代码。
Node.js 中有安全控制吗?
nodejs 自身并没有内置安全控制功能,但是在 nodejs 中也有动态运行不可信脚本的需求。一般实现方式是放在 vm2、sandbox 等沙箱中运行,或者自研沙箱。
谢谢