Представлен (https://blog.doyensec.com/2019/01/24/electronegativity.html) первый выпуск утилиты Electronegativity (https://github.com/doyensec/electronegativity), предназначенной для выявления некорректных настроек и потенциальных проблем с безопасностью в приложениях, разработанных с использованием платформы Electron (https://electronjs.org/). Код проекта написан на языке JavaScript и поставляется (https://github.com/doyensec/electronegativity) под лицензией Apache 2.0.
Утилита выполняет разбор AST (абстрактное синтаксическое дерево) и DOM, анализирует расхождения с рекомендациями (https://doyensec.com/resources/us-17-Carettoni-Electronegati...) по безопасной разработке с использованием платформы Electron и автоматически выявляет потенциальные проблемы и опасные приёмы разработки. При сканировании приложения утилита распаковывает все ресурсы и анализирует используемый в приложении Javascript-код, HTML-разметку и JSON-блоки. Результат сканирования может быть выведен в форме наглядного текстового отчёта или в форматах CSV и SARIF.В настоящее время реализовано 27 проверок (https://github.com/doyensec/electronegativity/wiki), подготовленных после изучения типовых уязвимостей (https://doyensec.com/resources/us-17-Carettoni-Electronegati...) в приложениях на базе Electron. Например, проверяется включение настройки "disablewebsecurity", обработка внешних ресурсов без их sandbox-изоляции, обращение к внешним обработчикам, доступ preload-скриптов к Node.js API, переопределение обработчиков протоколов, использование опасных функций (insertCSS, executeJavaScript, eval), отключение блокировки всплывающих окон (allowpopups), обращение к экспериментальным API Chromium, обработка кода без опции "contextIsolation", установка HTTP-соединений без шифрования и т.п.
URL: https://blog.doyensec.com/2019/01/24/electronegativity.html
Новость: https://www.opennet.me/opennews/art.shtml?num=50034
>Код проекта написан на языке JavaScriptА GUI почему не на электроне?
Тут это хотя бы логично, г-но лучше г-ном и парсить, тем более там наверняка под это есть с десяток лефтпадов на любой случай г-нокода
Что, время идёт, а ты так и не осилил новый инструмент?
Потому что вызываться оно будет в цикле сборке, а не вручную
Панацея ли?
Очередной hello world для электриков.
Я тоже свою версию опубликовал#!/bin/bash
echo WARNING: please run this script only on electron apps.
echo Report:
echo $1 is bloated memory-hungry slow bug-ridden crap that should never be used.
А ведь мог быть #!/bin/sh
Так что только на полпути от электрона
#!/usr/bin/env bash
> #!/usr/bin/env bashа у это кого баш лежит не в /bin/ ?
У FreeBSD, например
там и env не поможет:
> env bashenv: bash: No such file or directory
нахрен он тут нужен-то?Пишите сразу на электроне.
Чтобы не страдать с tcsh, например
А ведь основная масса уязвимостей исходит из node.js. Даже создатель ноды признал своё детище исчадием ада и решил запилить ноду по новой на расте и typescript. Только вряд ли выстрелит, так как в ноду вложено уже приличное количество денег и на уязвимости мягко говоря чихать. Ну или как в новости, а давайте сделаем тулзу чтобы веб разраб сделал хотя бы пару кликов на пути к безопасности своих поделок.
Ноду надо огораживать вокруг, а не искать в ней ошибки. В реальной жизни его должен был огораживать бразер. Но нода вырвалась наружу.
>В реальной жизни его должен был огораживать бразерНе представляю как изначально серверная нода может крутиться в браузере. Да, движок скрипта из браузера, но доступ к системем построен на сишной библиотеке.
Ты же понимаешь, что ты сейчас тупо напридумывал на ходу кучку бреда?
А может окропить его святой водой и все пройдет?
нет, тут только жечь!
Если хипстору надо писать безопасный код, то пусть берет раст с webasm.
Все шутки за 300 выпилили можно писать новые. Итак если проект написан на электроне он уже уязвим.
Странно написать интерпретацию любого XML подобного инструмента для организации UI раз плюнуть, но смельчаков нет?
Для Android разметку в XML пишут. У Apple их XIB - тоже XML-подобный формат. У Windows вроде тоже что-то XML-подобное. В одном опенсорсе изобретают всякие CSSы и QMLи.
Так XML и CSS они же как брат и сестра.
> шутки по 300
>выпилили.Не искушайте тракториста.
Предлагаю решение проблемы - отказ от Electron. Как вам такое?
Веб разрабы и фирмы их нанимающие не согласны). ПО встало на путь конвейера, только успевай снимать с ленты.
Осталось ответить на вопрос, как разработать десктопные клиенты с затратами на разработку и поддержку, не сильно превышающие заворачивание уже готовой вебморды в Electron, и тогда норм. :-)
Готовая вебморда обычно полный УГ по функциональности. Поэтому проще сделать нормальный гуй на чём-то кроссплатформенном, а потом прикрутить простенький чатик на вебе для тех, кому натив недоступен. Тот же телеграм не пошёл по пути тысяч хомяков, а жахнул нативный клиент, да ещё и не один (на винде вроде был альтернативный на шарпе и для мака есть свифт версия, для андроида и иоса их было две - обычная и Х). Зато майкрософт со своим скайпом уже нахавался лестных отзывов в свою сторону, когда нормальные нативные клиенты поменяли на непонятно что. Хотя, возможно, они это сделали специально. Надеюсь, все остальные ненативные либо загнутся в агонии, либо одумаются и начнут писать нативно. Даже в условиях отсутствия кроссплатформенного гуя 15 лет назад почему-то могли написать ядро на плюсах, а потом сверху навернуть гуй на чём угодно.
Да, но в реальности тебе дают 1K USD и говорят что нужно до конца месяца (или недели, двух). Чтобы кругом работало, сайт уже есть и заказчик считает что уже 75% работы. А там полнейший очередной CRUD - ты в глаза бы больше такого рода ужаса не видел. И есть Веня - веб-дизайнер, за которым придется даже JS переписывать и добегать и а Fronted после твоих задач, но Веня быстр, Electron для Вентиляции не проблема да и править потом это дня три работы.
if (isElectronApp()) {
echo "WARNING! You have security problem!"
exit 1
}# пользуйтесь
1. a
2. problemsChoice: _
replace(s, 'security', 'huge');
У Электрона только одна проблема с безопасностью - сам Электрон.
Старая шутка: самая большая уязвимость - неграмотный специалист