Search
Write a publication
Pull to refresh

Comments 28

Больше похоже на вступление к статье, чем на саму статью.

UFO landed and left these words here
Мне кажется основной посыл не малое количество уязвимостей в C# проектах, а их плохое оформление. То есть одно дело когда уязвимостей в базе мало, но те, что есть оформлено хорошо, другое дело когда уязвимостей в базе мало, а те что есть оформлены абы как.
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
После такой статьи от души радуешся что ты c# програмист.

Или огорчаешься, потому что мало серьёзных проектов с открытым кодом на C#.

CVE-2017-15280 — это давно уже не уязвимость. Потому что XXE через XmlTextReader с настройками по умолчанию закрыли в .NET 4.5.2, за три года до 2017го...

Эмм… Может на C# тупо мало софта и не в чем искать уязвимости? На типичном не-Windows компьютере (включая мобилы-планшеты) софта на шарпе примерно ноль.


Наверняка в программах на D, Cobol, SmallTalk, Haskell тоже мало CVE.

На C# мало софта? Хороший вброс

Касательно уязвимостей.
Им в дотнете взяться особо неоткуда. Управляемый код со строгой статической типизацией перекрывает большинство классических проблем, так что выстрелить себе в ногу намного сложнее. Из потенциально дырявых технологий могу назвать разве что Remoting, которым уже лет 10 как не пользуются.
Остаются в основном штуки связанные с вебом, но и там можно поймать разве что XSS — SQL-инъеккциям тоже неоткуда взяться, ибо все используют LINQ.

UFO landed and left these words here

Это Entity Framework-ом не стоит особо увлекаться, ибо тормозит из-за своего change-tracking-а. Нормальные реализации типа linq2db (не путать с linq2sql) по производительности сравнимы с ручным написанием запросов.


Это касательно доступа к БД. Манипуляции же с объектами внутри процесса, там да, можно использованием LINQ себе производительность хорошо так просадить. В особо терминальных случаях его запускают поверх байтмассивов, а потом удивляются, чому оно работает на 4-5 порядков медленнее вручную написанного цикла.

UFO landed and left these words here

Потому что мощная и удобная штука.

UFO landed and left these words here

Вот именно потому, что субъективная, вы и не понимаете.


(правда, надо заметить, что статическая типизация и AST — вещи все-таки объективные, ну не суть)

UFO landed and left these words here

Ну так любят и не за производительность (хотя в умелых руках производительность LINQ, как бы бессмысленно эта фраза не звучала, достаточна).

UFO landed and left these words here
На вкус и цвет, все фломастеры разные.

Ну так это и есть субъективная характеристика.

А чем linq вам не нравится? Не сложные запросы на нем можно писать и очень даже удобно, а для более сложных запросов можно написать sql-запрос

Microsoft C# — очень хороший пример качественной реализации C# и IL транскомпиляции вообще. Безопасность типов реализуется так, что в принципе, ошибки не являются критическими.
UFO landed and left these words here
С появлением .net core и других проектов в OSS это может измениться.
Мне кажется это от того, что там вообще плохо с написанием велосипедов. В смысле, фреймворк покрывает 95% нужд, остальное подпирается костылем под конкретную задачу и… и никаких уязвимостей. Ну и OSS такое же — небольшие костыли. Во что вкладываться то?

Совсем другое дело на JS — есть голый язык, и на него как только не изгаляются для прикручивания лучших практик. Тут без OSS вообще никак.
Sign up to leave a comment.