OberonCore
https://forum.oberoncore.ru/

Проблема безопасности софта стоит колом
https://forum.oberoncore.ru/viewtopic.php?f=57&t=6729
Страница 1 из 2

Автор:  Info21 [ Понедельник, 01 Март, 2021 14:11 ]
Заголовок сообщения:  Проблема безопасности софта стоит колом

В ответ на вопрос "зачем Раст" некто выдал ценные числа и графики

https://www.quora.com/Is-it-worth-learning-Rust-in-2020

А также ценный аргумент, который нужно использовать:

Машина без тормозов, ремней безопасности и прочего абсолютно безопасна, если ее правильно использовать.

Кстати, какие преимущества в плане безопасности имеет Rust против Оберона?
Кто у нас тут знаток Раста? Валерий Викторович?

Автор:  Валерий Лаптев [ Понедельник, 01 Март, 2021 15:49 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Нет, я не знаток.
Просто у меня две книжки по расту есть... :)))))

Автор:  Иван Денисов [ Понедельник, 01 Март, 2021 17:06 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Вот тут один знаток Раста сделал обзор на Native Oberon
https://www.youtube.com/watch?v=OJGnpmnXR5w

Автор:  Info21 [ Вторник, 02 Март, 2021 12:40 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Иван Денисов писал(а):
Вот тут один знаток Раста сделал обзор на Native Oberon
https://www.youtube.com/watch?v=OJGnpmnXR5w
не, фильтровать сил нет

Автор:  Comdiv [ Четверг, 04 Март, 2021 00:06 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Валерий Лаптев писал(а):
Просто у меня две книжки по расту есть... :)))))
Написанных :D ? Или хотя бы прочитанных?

Info21 писал(а):
Кстати, какие преимущества в плане безопасности имеет Rust против Оберона? Кто у нас тут знаток Раста?
Раз знатоки молчат, придётся слушать незнаек.

1. Переполнение в целочисленной арифметике в явном виде рассматривается как ошибка. В стандартной библиотеке представлен полный спектр функций для корректной обработки переполнений. Наличие разделителей для различимости - 1_000_000
2. Наличие гарантий стандартных указателей о том, что они не 0. В указанных графиках проблема не выделена отдельно, значит она входит в самый массовый класс проблем с буфером.
3. Защита от проблем с перекрытием данных, передаваемых по ссылке. ~ arraycopy(arr,5, arr, 3, 10). Тоже может входить в список проблем с буфером
4. Возможность защитить данные от изменения на большем уровне гарантий.
5. Что-то ещё :)

Автор:  Валерий Лаптев [ Четверг, 04 Март, 2021 05:51 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Одну читать очень трудно - она от разработчиков.
Вторую - очень легко, она для начинающих.
Но и там, и там - не акцентируется внимание на надежности.
С точки зрения обучения программированию - не для первичного обучения точно.

Автор:  Trurl [ Четверг, 04 Март, 2021 09:07 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Comdiv писал(а):
Info21 писал(а):
2. Наличие гарантий стандартных указателей о том, что они не 0. В указанных графиках проблема не выделена отдельно, значит она входит в самый массовый класс проблем с буфером.

Не входит. Это же совсем другая проблема. А не выделена потому, что это не считается проблемой безопасности.

Автор:  Comdiv [ Четверг, 04 Март, 2021 14:40 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Trurl писал(а):
Не входит. Это же совсем другая проблема. А не выделена потому, что это не считается проблемой безопасности.
В Common Weakness Enumeration входит, хотя, может, в тех конкретных графиках и не рассматривалась как проблема безопасности.

Автор:  Info21 [ Четверг, 04 Март, 2021 16:41 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Валерий Лаптев писал(а):
С точки зрения обучения программированию - не для первичного обучения точно.
Спасибо. Ваше мнение тут окончательное.

Автор:  Rifat [ Пятница, 05 Март, 2021 12:01 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Добавлю свои 5 копеек. Хочу написать про небезопасность перегрузки функций (когда есть несколько функций с одинаковым именем, но разными типами параметров или разным количеством параметров. Недавно сделал ошибку из-за перегрузки операторов в C#.
Был код следующего вида:
void Func(BaseType t);
{
if (t is ChildType) { Func((ChildType)t); }
}

void Func(ChildType c);
{
// some code
}

Когда добавил дополнительный параметр в
void Func(ChildType c, int additionalParameter)
и исправил в одном месте, не учел, что есть еще код, который я привел выше.

И это привело к бесконечной рекурсии и падению программы во время исполнения (на автоматических юнит тестах, но все же).

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

Автор:  Info21 [ Пятница, 05 Март, 2021 12:49 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Rifat писал(а):
Добавлю свои 5 копеек.
Ужасы какие. Не могу надивиться на мировое программахерство.

Автор:  Comdiv [ Пятница, 05 Март, 2021 12:56 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Rifat писал(а):
...
Вы всё правильно пишете, но в следующий раз лучше воспользуйтесь автоматизированными средствами рефакторинга.

Автор:  Александр Ильин [ Пятница, 05 Март, 2021 13:23 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Rifat писал(а):
Был код следующего вида:
void Func(BaseType t);
{
if (t is ChildType) { Func((ChildType)t); }
}
За такое надо гнать из профессии.

Автор:  Comdiv [ Пятница, 05 Март, 2021 13:31 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Тут недостаточно информации для того, чтобы такое утверждать. Бывает уместным.

Автор:  Александр Ильин [ Пятница, 05 Март, 2021 13:45 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Comdiv писал(а):
Тут недостаточно информации для того, чтобы такое утверждать. Бывает уместным.

Рефакторинг наше всё, не?

Автор:  Rifat [ Пятница, 05 Март, 2021 14:11 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Не наше и не всё :)
По крайней мере пока не запретили редактировать текст программы в редакторе. Обычно такие подвохи встречаются не так часто, чтобы опасаться редактировать текст вручную и доверять только автоматическому рефакторингу, который должен все сделать хорошо. На самом я не очень часто пользуюсь автоматическим рефакторингом, если бы пользовался, то, возможно, добавил бы другие 5 копеек, как автоматический рефакторинг сделал не то, что нужно. Или это невозможно?

Автор:  Peter Almazov [ Пятница, 05 Март, 2021 17:03 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Александр Ильин писал(а):
Rifat писал(а):
Был код следующего вида:
void Func(BaseType t);
{
if (t is ChildType) { Func((ChildType)t); }
}
За такое надо гнать из профессии.
Хотел написать то же самое, но лень было )

Автор:  Rifat [ Пятница, 05 Март, 2021 18:02 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Небольшие комментарии. Я привел упрощенный пример на 4 строчки, которые поясняют ошибку. В реальном коде там 26 строк и еще проверяются другие типы. И данный код писал не я, так что не надо на меня косо смотреть :) В проекте много людей и развивается много лет, кода тоже много.

Хотелось бы, чтобы комментаторы немного поясняли свое мнение, чем именно они возмущены? Тем, что для разных типов используется перегруженная функция с одним и тем же именем, или чем-то другим.

Автор:  Sergej Durmanov [ Пятница, 05 Март, 2021 18:32 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Rifat писал(а):
...
Здесь напрашиваются функторы или даже методы

Автор:  Александр Ильин [ Суббота, 06 Март, 2021 06:37 ]
Заголовок сообщения:  Re: Проблема безопасности софта стоит колом

Rifat писал(а):
Не наше и не всё :)
По крайней мере пока не запретили редактировать текст программы в редакторе.
Я всегда рефакторинг делаю только вручную.

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/