1.2, InuYasha (??), 13:11, 30/09/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
"Big business работает на Java" - говорили они... Ан, вот, настоящий performance-critical big-biz почему-то плюшевый. )
| |
|
2.3, InuYasha (??), 13:12, 30/09/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
Жаль только, что анализатор не для самих плюсов. Но для них и так анализаторы есть.
| |
2.8, Аноним (8), 13:35, 30/09/2021 [^] [^^] [^^^] [ответить]
| +5 +/– |
Это для того, чтобы сам себя не мог проверить. Если Анализатор может проверить и сам себя, то выявленные ошибки на кого писать?
А если серьезно надо отличать софт используемый бизнесом и софт на котором делается бизнес.
Требования к ним могут оказаться совсем разными.
| |
|
1.6, Аноним (-), 13:29, 30/09/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –7 +/– |
Стал неконкурентоспособным перед свободными решениями, вот и решили открыть код.
| |
|
2.7, QwertyReg (ok), 13:32, 30/09/2021 [^] [^^] [^^^] [ответить]
| +8 +/– |
Типичная реакция "свободного сообщества". Корпорация открывает код, фактически, дарит коммерческий продукт, написанный профессионалами, всем желающим, но наших фанатиков не проведёшь, тут есть подвох, нам подачек не надо. Правда, фанатик скромно умалчивает, что это за "свободное решение" такое и также предпочитает не замечать, что весь Linux построен на подобных "подачках", начиная от CUPS и заканчивая Firefox.
| |
2.10, Аноним (10), 13:48, 30/09/2021 [^] [^^] [^^^] [ответить]
| +3 +/– |
> перед свободными решениями
Не будем говорить о конкурентоспособности, но таковые существуют ли вообще хотя бы?
| |
|
|
2.24, Аноним (24), 15:52, 30/09/2021 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы логотип видели? Думаете велосипед там просто так нарисован?
| |
|
1.21, Аноним (24), 15:41, 30/09/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
>CMake 3.19.3 or higher is required. You are running version 3.18.4
В Ubuntu, как всегда, CMake протухший
| |
|
2.40, mos87 (ok), 07:53, 01/10/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
но ведь это только autotools протухают и особо одарённые завязываются на их конкретные версии
да ведь?! смузихлёбы не могут нам врать!
или смузи уже перешли на нинзи мезоны и тд бггг
| |
|
|
2.27, Ordu (ok), 17:13, 30/09/2021 [^] [^^] [^^^] [ответить]
| +/– |
Не, они отслеживают пути данных. Борроу-чекер не запрещает взять пароль и скинуть его в лог.
| |
|
3.29, Аноним (24), 18:43, 30/09/2021 [^] [^^] [^^^] [ответить]
| +/– |
Но как программа узнает, что пароль - это пароль, без предварительной аннотации. Машинным обучением?
| |
|
4.30, Ordu (ok), 18:48, 30/09/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Но как программа узнает, что пароль - это пароль, без предварительной аннотации.
> Машинным обучением?
По источнику данных. Пароль не берётся ниоткуда.
| |
|
5.31, pashev.me (?), 19:23, 30/09/2021 [^] [^^] [^^^] [ответить]
| –1 +/– |
Приведи пример, солнышко.
Как насчёт опечаток
username = getPassword();
password = getUsername();
Даже в формах на сайтах так можно накосячить.
| |
|
6.32, Ordu (ok), 19:46, 30/09/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Приведи пример, солнышко.
Я не знаю, откуда там программы на андроиде извлекают пароли, и какие API для этого есть.
> Как насчёт опечаток
> username = getPassword();
> password = getUsername();
Что это за getPassword и getUsername? Откуда они тягают пароль и пользователя? Как они это делают? К каким-то API обращаются? Давай сюда более полный пример, без этого никак: анализ кода идёт на уровне машинных кодов, соответственно, тебе в примере всё надо свести к границам между машинным кодом и внешним миром.
Или хочешь я пример приведу?
Вот пишешь ты C'шную программу, которая запрашивает пароль у пользователя, и делаешь libc'овый вызов getpass. Этот getpass в базе данных анализатора, который палит -- "ага, возвращаемый указатель -- это указатель на пароль", и дальше отслеживает этот указатель, обращая внимания на все strdup, strcpy и прочие.
| |
|
7.35, ip1982 (ok), 21:07, 30/09/2021 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Как они это делают? К каким-то API обращаются? Давай сюда более полный пример
Не, не, Mariana Trench. Давай сама :)
| |
|
|
5.33, Аноним (24), 19:46, 30/09/2021 [^] [^^] [^^^] [ответить]
| +/– |
Ну и как? Один пароль прочитали из текстового конфига. Другой - из текстового поля обычного, не для паролей. Потому что поле для паролей разраб сделал кастомное из обычного текстового. И имён переменных внутри apk нет, их сожрал оптимизатор. А имена, которые не сожрал оптимизатор, сожрал proguard.
| |
|
6.36, Ordu (ok), 21:15, 30/09/2021 [^] [^^] [^^^] [ответить]
| +/– |
> Ну и как? Один пароль прочитали из текстового конфига. Другой - из
> текстового поля обычного, не для паролей. Потому что поле для паролей
> разраб сделал кастомное из обычного текстового. И имён переменных внутри apk
> нет, их сожрал оптимизатор. А имена, которые не сожрал оптимизатор, сожрал
> proguard.
И чё? Ты ждёшь от статического анализатора, чтобы он тебе 0% false positive'ов находил, и 0% false negative'ов? Зря ждёшь, не дождёшься, таких не бывает.
| |
|
|
|
|
|
1.42, pashev.me (?), 12:32, 01/10/2021 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
В Расте и Хаскеле очень просто предотвратить например вывод секретов в лог - не реализовывать соответствующий трейт или класс. Или реализовывать так, чтобы секреты не выводились или выводились звёздочками.
То есть, проблема решается дёшево и сердито. Безо всяких анализаторов.
| |
|
2.43, inferrna (ok), 13:40, 01/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Мдэ. Пароль у тебя в String'ах, написал разок
let pass = dbg!(getPassword());
и забыл. А если пароли по специальным структурам распихивать, то это и на жабе можно секурно сделать.
| |
|
3.45, Alladin (?), 19:51, 01/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Поправочка, не в String, а в структуру с полем String.
Добавляем нужную обвязку для звездочек в данную структуру, некоторые надуманные защиты в виде автоперезаписи String при drop структуры и все ок.
| |
|
|
|
2.50, anonymous (??), 12:46, 03/10/2021 [^] [^^] [^^^] [ответить]
| +/– |
Что сказать-то хотели? Да, в мире есть не только Rust. Это для вас новость?
| |
|
|