Deno的安全模型为何让人担忧
I'm not a fan of Deno's security model (2024)
我对Deno的安全模型一直心存疑虑,尤其是它的权限系统。虽然Deno宣称“默认安全”,并通过运行时提示和命令行参数(如--allow-run)来限制程序行为,但这种设计存在严重漏洞。例如,恶意代码可以通过终端颜色干扰用户判断,或利用LD_PRELOAD等环境变量绕过沙箱限制。更关键的是,Deno并未真正沙箱化进程,只是模拟了系统调用过滤,一旦涉及非标准库操作,防护即刻失效。我并非反对Deno本身,而是认为这种伪沙箱机制容易让人产生虚假的安全感,从而在不该信任代码时盲目运行。真正的安全应依赖操作系统级的沙箱,而非依赖用户理解复杂的权限组合。
Deno进程实际上并未被沙箱隔离,它只是在假装被沙箱隔离。
HN 评论区
57- jFriedensreich
我曾是 Deno 的粉丝,至少他们尝试过。问题不在于存在其他试图正确实现权限控制的运行时,也不在于存在支持异步(!)且能与用户交互的操作系统工具。我们真正需要的是一款易于使用、经过产品化打磨但真正开源的解决方案,能够暂停任何软件运行,评估运行、文件系统、网络等策略,并能在进程和上下文层面进行推理。
- hoppp
Deno 只剩下 1 年的官方支持了……
我喜欢它的权限模型,至少它做了一些东西,不像 Node。
- phyzome
我实际上有一个终端程序,有时需要向用户索取敏感输入,而且可能是在攻击者数据已经打印出来之后。我一直试图弄清楚该如何处理这种情况!
我的计划是进行 Unicode 编码(有损),剥离控制字符,并添加一些视觉框架。还有什么我应该考虑的吗?有没有标准做法?我还没专门做过这方面的研究,但既然这里提到了,我想应该有人知道。
(如果有兴趣,链接是 https://codeberg.org/timmc/breakmancer。)
- bluegatty
这难道不是所有 CLI 终端图形界面(TUI)普遍存在的问题吗?这和 Deno 具体有什么关系?
- kevin_thibedeau
> 权限提示“部分可见”(你能看到一个表情符号)
终端可以配置为以文本呈现形式渲染表情符号,此时它们会变成单色字形,可以通过转义序列像普通文本一样着色。别把安全模型押注在这上面。