Почему система разрешений Deno не защищает, а создаёт ложное чувство безопасности

I'm not a fan of Deno's security model (2024)

Автор разбирает модель безопасности Deno и показывает, что её флагманская система разрешений не изолирует процесс по-настоящему. Запросы прав выводятся в тот же терминал, которым управляет потенциально вредоносный код, а «разрешение запустить одну команду» легко обходится через PATH, LD_PRELOAD или настройки редактора вроде VIMINIT. Deno латает отдельные дыры, но корень проблемы — отсутствие реальной песочницы — остаётся. Вместо этого автор советует bwrap.

Deno process is not actually sandboxed, it only pretends it is.
  1. jFriedensreich

    Я был фанатом deno, потому что они хотя бы попытались; дело не в том, что существовала альтернативная среда выполнения, которая правильно реализует разрешения, или что есть инструмент операционной системы, позволяющий асинхронные (!) разрешения с взаимодействием с пользователем. Нам действительно нужно простое в использовании, «продуктизированное», но по-настоящему открытое решение, которое позволяет приостанавливать любое программное обеспечение и оценивать политики для запуска, fs и сети и т.д., и может рассуждать на уровне процессов и контекста.

  2. ximm

    И, насколько я могу судить, это точно та же модель безопасности, которая сейчас используется в OpenCode и подобных.

  3. hoppp

    У Deno остался 1 год официальной поддержки...

    Мне нравилась модель безопасности, потому что у них хотя бы что-то было, в отличие от node.

  4. phyzome

    У меня на самом деле есть терминальная программа, которой иногда нужно запрашивать у пользователя конфиденциальные данные, потенциально после того, как были выведены данные злоумышленника. Я пытался понять, как мне с этим справиться!

    Мой план был: закодировать в Unicode (с потерями), удалить управляющие символы и добавить визуальное обрамление. Что ещё стоит учесть? Есть ли стандартный подход? Я пока не проводил исследование по этому вопросу, но раз уж он здесь всплыл, думаю, кто-нибудь может знать.

    (Это https://codeberg.org/timmc/breakmancer, если кому интересно.)

  5. kevin_thibedeau

    > запрос разрешения «частично виден» (можно увидеть эмодзи)

    Терминалы можно настроить так, чтобы эмодзи отображались в текстовой форме, где они становятся монохромными глифами, которые можно раскрашивать как обычный текст с помощью escape-последовательностей. Не стоит строить на этом свою модель безопасности.

Ещё за этот день

2026-11-08