LINUX.ORG.RU

Про статическую типизацию и безопасный доступ к памяти

 , , ,


3

2
★★★★★

Последнее исправление: RazrFalcon (всего исправлений: 1)

Ответ на: комментарий от Deleted

С удовольствием выслушаю вашу версию.

Речь шла о том, что memory safety можно достичь используя фаззин, что бред.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

А кто-то говорил о исчерпывающем тестировании одним движением мысли? Это фанаты статики в первую очередь верят, что статика все проблемы порешает.

В многоуровневой распределенной архитектуре фаззер генерит корректные данные для протокола нижнего уровня и проверяет работу протокола вернего уровня. Проблема принципиальной типо-небезапасности всегда будет актуальна, как только поток данных выходит за пределы анализа конкретного тайпчекера, за пределами границы ввода/вывода.

Но вот некоторые товарищи, доводящие идею о типо-безопасных ЯП до абсолюта, мечтают о мире, в котором все написано на одном чисто-функциональном ЯП с самой продвинутой системой типов, иммутабельностю и т.д...

seiken ★★★★★
()
Ответ на: комментарий от seiken

верят, что статика все проблемы порешает

Не все, но очень многие. Да и статика разная бывает. Тот же раст гарантирует отсутствие гонок данных на уровне типов.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Я активно использую и AFL и libFuzzer, но они находят только примитивные ошибки.

  1. Corpus?

  2. Grammars?

  3. Важна не примитивность ошибок, а их эксплуатабельность.

Deleted
()
Ответ на: комментарий от seiken

Но вот некоторые товарищи, доводящие идею о типо-безопасных ЯП до абсолюта, мечтают о мире, в котором все написано на одном чисто-функциональном ЯП с самой продвинутой системой типов, иммутабельностю и т.д...

Все правильно, статическая типизация не дает информации о внутренних состояниях объектов, потому идеально безопасный язык должен обходится без состояний.

anonymous
()
Ответ на: комментарий от Deleted
  1. Не очень.
  2. В процессе. Ничего готового для SVG я не видел.
  3. Кому как. В моём случае прога просто упадёт. Эксплуатировать там нечего.
RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

1. Не очень.

Вот тебе и причина. По моему опыту — качество corpus является фатальным для результатов фаззинга.

2. В процессе. Ничего готового для SVG я не видел.

В domato есть описание грамматик SVG.

3. Важна не примитивность ошибок, а их эксплуатабельность.

3. Кому как.

В контексте безопасности важна их эксплуатабельность.

DOS весьма редко интересен.

Deleted
()
Ответ на: комментарий от Deleted

В domato есть описание грамматик SVG.

Да, но он только внутри HTML его генерирует. Нужно будет посмотреть, может можно чисто SVG генерировать.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от Deleted

чо хотел сказать то?

в Airbnb и MS не умеют писать тесты?

Умеют, умеют. Только, как говорил классик, тесты показывают наличие багов, а не их отсутствие.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

Мне кажется, это топик для толксов. Хотя тогда анонимусы не смогут отмечаться, что здесь вполне уместно.

Virtuos86 ★★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

Почему Гугль Zircon на С++ написал?

Понабрали олимпиадников, умеют в математику, но не умеют в программирование.

foror ★★★★★
()
Ответ на: комментарий от Deleted

Другое дело, что в контексте бизнеса на безопасность даже банки в основном кладут (дешевле возмещать потери клиентам) — обычно скорость разработки более важна.

Это заблуждение, скорость разработки для бизнес кода будет более высокой на джаве/шарпе, чем на всяких скриптах. За шарп не скажу, а вот на джаве используя современную IDE можно писать тонны кода нон-стоп, т.е. без запуска и отладки.

Когда напишешь под 25-50 КБ кода, то можно запускать и отлаживать. Как правило всё уже работает, исправляешь лишь несколько логических ошибок.

А со скриптами, даже прилежный программист начинает творить дичь со структурами данных и в итоге код постепенно превращается в write-only и скорость разработки существенно падает. Я уж не говорю, что там всё нужно отлаживать на каждый чих, ни о каком нон-стоп написании и речи быть не может.

foror ★★★★★
()
Ответ на: комментарий от foror

Это заблуждение, скорость разработки для бизнес кода будет более высокой на джаве/шарпе, чем на всяких скриптах.

О каком заблуждении идет вообще речь? У меня в сообщении ни слова не сказано ни про джаву, ни про скрипты.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

Динамическая типизация в контексте безопасности — безусловное зло.
Другое дело, что в контексте бизнеса на безопасность даже банки в основном кладут —
обычно скорость разработки более важна

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от foror

За шарп не скажу, а вот на джаве используя современную IDE можно писать тонны кода нон-стоп, т.е. без запуска и отладки.

Фабрики фабрик фабрик можно писать нон-стоп целый день, для этого даже думать не надо. А если задача нестандартная, то сразу появляется либо TDD, либо старое доброе запустил-посмотрел

А со скриптами, даже прилежный программист начинает творить дичь со структурами данных

Джавист о таком не помышляет - это же надо будет всю иерархию классов менять, и неделя набора текста насмарку

annulen ★★★★★
()
Ответ на: комментарий от Deleted

И? Там нет речи ни о Java, ни о скриптовых языках.

Динами́ческая типиза́ция — приём, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов. Примеры языков с динамической типизацией — Smalltalk, Python, Objective-C, Ruby, PHP, Perl, JavaScript, Lisp, xBase, Erlang, Visual Basic.

foror ★★★★★
()
Ответ на: комментарий от foror

И дальше что? Причем тут скриптовые языки?

Deleted
()
Ответ на: комментарий от annulen

Фабрики фабрик фабрик можно писать нон-стоп целый день, для этого даже думать не надо.

Это в очень древнем легаси. Отрасль давно перешла на IoC и DI, даже веб-макаки об этом слышали.

А если задача нестандартная, то сразу появляется либо TDD, либо старое доброе запустил-посмотрел

Когда набираешься опыта, особенно специализируясь на чём-то одном, то большинство нестандартных задач переходят в разряд стандартных. Именно об этом речь, когда говорят об x10 между новичком и профи.

Джавист о таком не помышляет - это же надо будет всю иерархию классов менять, и неделя набора текста насмарку

Как раз, всё наоборот, у джависта рефакторинг не вызывает страха и уныния как на других платформах.

foror ★★★★★
()
Ответ на: комментарий от foror

Когда набираешься опыта, особенно специализируясь на чём-то одном, то большинство нестандартных задач переходят в разряд стандартных.

Погугли значение слова «оксюморон».

anonymous
()
Ответ на: комментарий от foror

За шарп не скажу, а вот на джаве используя современную IDE можно писать тонны кода нон-стоп, т.е. без запуска и отладки.

Современные IDE и для скриптов позволяют не приходя в сознание писать, например используя автозапуск тестов при изменениях.

anonymous
()
Ответ на: комментарий от anonymous

Погугли значение слова «оксюморон».

Погуглил и чо?

Например, вот эти словосочетания назовем оксюмороном: горькая радость; звонкая тишина; громкое молчание; горячий лёд; сладкая боль; правдивая ложь; искренний лжец; кричащая тишина; долгий миг; оригинальная копия.

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

foror ★★★★★
()
Ответ на: комментарий от anonymous

Современные IDE и для скриптов позволяют не приходя в сознание писать, например используя автозапуск тестов при изменениях.

Мдя... Да, вы работайте не переживайте, я только рад, что вы на своей скриптоте пашете - конкурентов меньше. А так, если бы тот же Гугл имел мозги в программинге - программисту-изобретателю-одиночке можно было бы вешаться, как впрочем и большинству стартапов.

foror ★★★★★
()
Последнее исправление: foror (всего исправлений: 1)

И 100% в коде, для которого не было тестов.

rupert ★★★★★
()
Ответ на: комментарий от foror

Когда напишешь под 25-50 КБ кода, то можно запускать и отлаживать. Как правило всё уже работает, исправляешь лишь несколько логических ошибок.

Ничесе у вас там адок в коммитах при таком подходе. Или коммиты с непроверенным кодом, что еще прикольнее.

bread
()

На этой неделе просто праздник на моей улице

Сколько ты заработал на этих CVE?

anonymous
()
Ответ на: комментарий от bread

Ничесе у вас там адок в коммитах при таком подходе. Или коммиты с непроверенным кодом, что еще прикольнее.

Когда проект создаётся с нуля в стартапе это нормально.

foror ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.