Pull to refresh

Comments 19

Похоже придётся смириться с тем что всё — решето.
Один мой знакомый не-программер сказал «так пиши весь свой софт сам». Что-то в этом есть.
Если бы были внятные стандарты, то это было бы вполне реально… Но ведь, большая часть усилий при написании, допустим, веб-браузера уйдет именно на маразматические стандарты, а некоторые широко распространенные форматы обмена, как например Flash, вообще закрытые.
Ага, понадобилось отдавать чуток статики — напиши свой nginx… Подумаешь, несколько месяцев fulltime разработки для базового функционала…
О да, только отсутсвтие стандартов на некоторые вещи мешает вам написать всё. Разумеется.
Эх, совсем недавно злопыхатели кричали, что openssl — решето, а polarssl и появлявшийся на свет libressl — совсем не то, заботятся о безопасности. А на деле программисты — тоже люди и могут ошибаться, так что ничего удивительного.

Печально, что обновлять на новую версию будут долго.
---программисты — тоже люди и могут ошибаться

Программисты всегда ошибаются, если не пишут елементарных unit тестов и уж тем более не пользуются программами синтаксического анализа.

Честно говоря я в шоке, что столь распространенные криптобиблиотеки выглядят таким крапом.
Если программа/библиотека собирается, то, очевидно, с синтаксисом там всё нормально. Но, думается мне, вы путаете его со статическим анализом, который совсем не про то и не является серебряной пулей.
---путаете его со статическим анализом

Да не то слово использовал.

Программы типа Coverity во время билда отрепортуют как Error однозначно, и да — в проэктах как криптобиблиотеки — это практически серебрянная пуля для таких тупых ошибок. Честно говоря не пойму зачем платят деньги QA-шикам в гугле?
Ну как бы они как раз гордятся, что у них больше 6500 тестов. Так что скорее вывод в том, что тесты не панацея от уязвимостей.
Нагло влезу со стороны — C++ уже не исправить, но, к счастью, скоро выйдет Rust 1.0, который не позволяет писать такое решето.
Из названия функции polarssl_free() явно торчат уши C, плюсы то тут причём?
Просто С++ — веревка идеальной длины, чтобы выстрелить себе в ногу :)
Не обратил внимания, но тем не менее — C тоже предоставляет кучу возможностей выстрелить в ногу, в отличие от Rust.
Через unsafe позволит что угодно, хоть что-нибудь гораздо более решетнее.
Возможность существует, но ведь нет никакого смысла использовать unsafe в тех местах, где как раз нужна безопасность.
Использование raw pointers для структур данных является чем-то вроде unsafe в современном С++.

Мне кажется что немного наивно полагать что новый язык вдруг даст сразу счастье и избавит от проблем с безопасностью. Для некоторых задач, вроде где разбирается ASN.1 из бинарных данных наверное ничего лучше row pointers не придумать в случая rust.

В процессе перевода сайта на HTTPS рассматривал вариант замены OpenSSL на сабж, но пришёл к выводу, что и так сойдёт. Тем более, что за неделю до продакшна в OpenSSL как раз исправили очередные 8 уязвимостей. Не прогадал!
Sign up to leave a comment.