Сформированы корректирующие релизы языка программирования Ruby 2.6.5, 2.5.7 и 2.4.8 в которых устранены четыре уязвимости. Наиболее опасная уязвимость (CVE-2019-16255) в стандартной библиотеке Shell (lib/shell.rb), которая позволяет осуществить подстановку кода. В случае обработки полученных от пользователя данных в первом аргументе методов Shell#[] или Shell#test, используемых для проверки наличия файла, атакующий может добиться вызова произвольного Ruby-метода...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=51598
РУБИзопасность
и анонимо-безупречность
> языка программирования Ruby 2.6.5, 2.5.7 и 2.4.8У меня чего-то в глазах зарябило: это все разные языки, или это версии языка? Тогда какого черта их столько перечислено?? (Вопрос риторический, я догадываюсь, какой будет ответ).
язык один, интерпретатор и stdlib разных версий.
>Тогда какого черта их столько перечислено??потому что они кроме беты еще 3 ветки поддерживают https://www.ruby-lang.org/en/downloads/branches/
> В случае обработки полученных от пользователя данных в первом
> аргументе методов Shell#[] или Shell#test,
> используемых для проверки наличия файлазавидуют, неудачники, нашему прекрасному phar.
Но получилась бледная копия, малопригодная для практического использования.
Его вообще для чего-то, кроме как для Rails используют?
Подозреваю, что для поддержки нео-легаси, возникшего на этапе агрессивного хайпа этого самого руби. Перспектив у языка нет.
однако гитлэб написан на нём, и переписыывать не собираются.
> однако гитлэб написан на нём, и переписыывать не собираютсяЭто и есть определение слову "легаси".
недавно видел несколько скриптов на нем в линухе. в /bin и /usr/bin. но их мало. я так легко интересовался и получается, что кроме райлс он нафиг нигде особо не нужен. поясните если ошибаюсь.
См. скрипты в OpenSUSE
Для автоматизации в основном. Или там, где нужно сделать что-то вроде DSL ... опять же, для автоматизации чего-то.
Chef, Puppet, Vagrant, Terraform, Travis CI, YaST, Sidekiq и т.п. Ruby используют OpenNebula, CloudFoundry
Ну да, для написания драйверов, видеокодеков и майнеров криптовалют подходит слабо :)А для систем вида "возьми данные здесь, сделай из них HTML или JSON и отдай" вполне годен.
Например взять данные из чьего либо API и положить в свою локальную БД.
Реализовать API для доступа к своим данным.Компоненты входящие в Rails расширяют язык и позволяют делать эти задачи более простыми для программиста.
Конечно покушать ОЗУ и ЦПУ любит больше чем компилируемые языки, но так было всегда и со всеми :)
А еще комьюнити вокруг языка непривычно доброжелательное, но это сугубо моё ИМХО.
Ну так-то Питон для этого всего тоже отлично подходит и он более популярен и комьюнити шире.
Только язык не очень, ага. Вам знакома такая штука как вкусовщина?
Я не особо разработчик, не могу сравнивать кто из них очень или не очень.
У английского языка тоже комьюнити шире, но это не мешает существовать русскому.У руби есть отличия, которые замечаешь когда переключаешься с него на пайтон :)
Например.
Блок кода - конструкция которую можно передать при вызове функции.
Она похожа на пайтоновую lambda не ограничивается одним выражением.
но это вторично.
Самое интересное это то что здесь используют вещи которы другие записали в антипаттерны.Например некоторые модули расширяют поведение базовых классов.
В Rails конструкция 7.days.ago отработает вернет дату и время (7 суток назад) потому что в класс Integer (а 7 это объект Integer) были добавлены методы.
Это (сама возможность расширять базовые классы) наврное может превратить работу над крупным проектом в ад, но при здравом подходе вполне удобно.
не отработала. как и ожидалось - undefined method 'day'
Там ключевое слово "в Rails". В простом irb это работать не будет
>А для систем вида "возьми данные здесь, сделай из них HTML или JSON и отдай" вполне годен. Например взять данные из чьего либо API и положить в свою локальную БД. Реализовать API для доступа к своим данным.Это задачи из разряда hello world. Их можно реализовать на любом современном ЯП. В компаниях этим языком станет тот на котором написаны основные проекты и, с большой вероятностью, это будет не Руби.
> Это задачи из разряда hello world.Задачи из разрада "Hello World" обычно используют для демонстрации синтаксиса языка, никакого
прикладного применения не подразумевается. Я же говорил про относительно простые задачи часто приносящие пользу бизнесу.
Можно их отнести к "однострочникам", и я бы сказал что это их преимущество.> Их можно реализовать на любом современном ЯП.
Их можно делать и на языках которые никто ужа давно не назовет современными :)
Но при использовании многих из языков, эти программы сразу перестанут быть "однострочниками".
Код на руби может быть и понятен, и лаконичен, а может не быть :)> В компаниях этим языком станет тот на котором написаны основные проекты и, с большой вероятностью, это будет не Руби.
Да. Если смотреть на вопрос "статистически"...
Скорее всего реазизуют на JavaScript.
ТЗ будет на английсоком или на одном из наречий китайского.
Редактор/IDE будет работать под виндой.
и еще можно кучу придумать "наиболее вероятного"Всегда есть тренды, но не надо их рассматривать как единственно верное решение во всех ситуациях.
(я вот не китаец, хотя это и в тренде)Есть ниши где руби удобен и неплохо обосновался и этого достаточно чтобы мотивировать разрабочиков на поддержку старых версий, разработку новых, а еще поддержку кучи компонентов.
А новые уязвимости добавили? Чтобы после было чего исправлять.
да что за люди то такие! все у них на живуличку, на ниточку! устранимая уязвимость .. тфу.
не чего сделать нормально не могут .. не что бы неустранимую уязвимость как интел запилить .. любители блин