Re: Нужен ли bash
Aleksey Cheusov -> debian-russian@lists.debian.org @ Wed, 01 Oct 2008 15:22:46 +0300:
AC>>> Связь между размером исходного кода и безопастностью прямая. Если
AC>>> уж выбирать что-то более мощное по сравнению с shell-ом, я бы
AC>>> выбрал LUA или Java Script. Но никак не TCL и тем более не
AC>>> python.
>> Если речь идет о безопасности, то начинать надо с выкидывания sh.
AC> Вызов внешней утилы не является дырой в безопастности. По крайней
AC> мере речь _сейчас_ не об этом, контект не тот.
Во-первых, я и про внутренность тоже. perl хотя бы можно одним ключиком
отучить исполнять небезопасный ввод. Там тоже есть проблемы, но у него
хотя бы есть этот механизм.
А во-вторых, у всякой утилиты, принимающей решения на основании файлов
из fs (включая их исполнение), немалая часть ее безопасности состоит из
того, что она берется исполнять, а что - нет. Для ssh и sudo ошибки в
тщательном анализе прав - это ошибки в безопасности. В sh механизма
анализа, что мы выполняем, нет как класса. Это даже не ошибка в
безопасности, это design flaw. Если в случае ssh и sudo это лечится
патчами, то в случае sh - только гильотиной.
Чтобы быть яснее. Если на проблему все закрывают глаза - это не значит,
что проблемы не существует.
Я могу представить другие поводы выкинуть perl из базовой системы.
Размер, например. Но выкинуть perl _по соображениям безопасности_ и
оставить при этом sh - это, извините, идиотизм.
>> И только потом - perl... А tcl как раз один из наиболее безопасных.
AC> Речь не о самом языке, а о реализации транслятора и библиотеках,
AC> реализованных на C.
Ну и? Можно предъявить мне место, в котором tcl менее безопасен, чем
sh?
>> А Java Script безопасен только в песочнице. Но в песочнице он
>> бесполезен.
AC> Расшифруй.
Безопасность JS базируется на том, что у него нет средств доступа к
системе. Но если у него нет средств доступа к системе, он не сможет
этой системой рулить.
Ну и движки JS'ные по размеру - perl отдыхает...
AC> Я бы вот с удовольствием заменил awk java script-ом, если бы к нему
AC> добавить awk-шную data-driven логику и нормальные (POSIX
AC> compatible) регулярные выражения.
А смысл решать на получившемся винегрете задачи, которые решает awk?
Если их на авке решать сложно, вон для желающих лаконичности есть perl,
а для желающих ясности - tcl. Где тут ниша для JS?
Ну, понятно, есть другие задачи, которые действительно может быть удобно
решать на JS (человеку, испорченному сишным синтаксисом и плюсовой
парадигмой - а я предпочту, в зависимости от задачи, либо perl, либо
lisp/tcl, либо python). Но к ним непонятно, как пришить awk...
--
Artem Chuprina
RFC2822: <ran{}ran.pp.ru> Jabber: ran@jabber.ran.pp.ru
Обновление Windows изменило интуитивно ясный интерфейс Вашего компьютера.
Загрузите обновление интуиции с сайта Microsoft.
(С)энта
Reply to: