Я специально смотрю на emacs helm , который имеет следующие свойства:
- он имеет тысячи коммитов
- в основном поддерживается одним пользователем
- у сопровождающего нет других профилей (социальные сети и т. д.), которые я смог найти в нескольких поисках
- активно поддерживается (сегодня)
Поскольку я собираюсь установить произвольный код на свой компьютер для использования в моем текстовом редакторе, я хотел проверить, прошел ли он какой-либо процесс проверки. Я хотел бы сказать «ну, это с открытым исходным кодом», но я действительно далек от способности elisp самостоятельно проверять весь код. Я хотел бы предположить, что другие в сообществе рассмотрели это, но один, вероятно, ложный, и два - это самые последние коммиты. Есть ли другие стратегии, которые мне не хватает?
Для записи вектор прост: «открытый исходный код» не имеет большого значения, если участник работает с одноразовой учетной записью, или если нет процесса проверки.
mapatoms
можно было бы поставить в «опасную» группу вместе сstart-process
,eval
иfuncall
. Конечно, могут быть некоторые ложные срабатывания, но если пакет не использует ни одну из этих функций, он может быть помечен как безопасный с большой уверенностью.make-process
, а такжеcall-process
,dbus-<foo>
,make-network-stream
, а затемvc-do-command
,vc-git-command
.... А если поставитьeval
иfuncall
в «опасной» категории, то большинство / все пакеты опасны.Ответы:
Краткий ответ: если вы не читаете код самостоятельно, вы берете на себя много доверия. Сказав, что доверять проекту, полученному из вышестоящего SCM, немного безопаснее, чем тот, который был получен непосредственно из Emacs Wiki, например. Однако, в сущности, вы доверяете автору пакета, чтобы он не превращал зло и не злоупотреблял возможностью запускать произвольный код в рамках вашей сессии Emacs.
Есть некоторые вещи, которые могут заставить вас чувствовать себя в большей безопасности:
Хотя популярные пакеты не получают автоматически больше информации о том, что у них больше пользователей, вероятность того, что вредоносное поведение будет обнаружено до того, как оно затронет вас, возрастет.
На github вы можете получить довольно хорошее представление об истории вклада проектов. Даже если основной автор делает большинство коммитов с широким кругом авторов, он показывает, что есть другие люди, активно заинтересованные в стабильности и эффективности кода.
Хотя жизнь на переднем крае имеет определенную привлекательность для тех, кто хочет новейшие блестящие функции, это означает, что вы, возможно, будете первыми, кто примет последний коммит в вашу среду. Даже если он не злонамеренный, вы вполне можете получить пакет в состоянии нестабильности, в то время как «официальный» выпуск будет, по крайней мере, иметь своего рода краткий обзор. Например, пакеты GNU ELPA будут переданы только тем пользователям emacs-devel, которые имеют права коммитов.
В конечном счете, я уверен, что в какой-то момент произойдет нарушение безопасности через систему пакетов, даже если это всего лишь доказательство концептуального эксперимента. В этом случае вам, возможно, придется полагаться на регулярные резервные копии.
источник