The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск языка программирования Rust 1.48, opennews (ok), 19-Ноя-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


50. "Выпуск языка программирования Rust 1.48"  +2 +/
Сообщение от Аноним (50), 19-Ноя-20, 23:56 
Это такой ТООООЛСТЫЙ троллинг? Просто я испытываю испанский стыд...
Разве ZOG выгодно делать уязвимости в языках программирования?
Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

53. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Аноним (53), 20-Ноя-20, 00:08 
То есть, по-твоему, все уязвимости связанны с памятью, клоун?
Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск языка программирования Rust 1.48"  +8 +/
Сообщение от Жорш (?), 20-Ноя-20, 01:50 
95% ошибок это доверять входящим данным без проверки. Без разницы откуда - файл, сокет, ввод, аргументы приложения и т.д. Ошибки с памятью, в основном, тоже являются этой же проблемой - слепое доверие что где-то оно чистится и я не выпрыгнул на границы. Если проблему с памятью можно ещё как-то решить придумав Rust, то остальные 95% сами себя не смогут излечить.
Ответить | Правка | Наверх | Cообщить модератору

153. "Выпуск языка программирования Rust 1.48"  +1 +/
Сообщение от red75prime (?), 20-Ноя-20, 09:54 
Но ошибки работы с памятью иногда позволяют обойти все защиты, что поставили для предотвращения SQL инъекций, command line инъекций и всяких других инъекций.
Ответить | Правка | Наверх | Cообщить модератору

336. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от някус (?), 23-Ноя-20, 23:50 
Я и вижу, как в безопасном "PHP" каждый второй Moodle не изобилует то залочками, то SQL-инъекциями, хотя казалось бы…
Ответить | Правка | Наверх | Cообщить модератору

183. "Выпуск языка программирования Rust 1.48"  +/
Сообщение от Ordu (ok), 20-Ноя-20, 11:46 
> Если проблему с памятью можно ещё как-то решить придумав Rust, то остальные 95% сами себя не смогут излечить.

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

У тебя есть два варианта, либо создать тип Checked<T>, либо тип Unchecked<T>. За каждым из типов прячутся разные стратегии. За первым -- отказываться работать с T, если он не был завёрнут в обёртку Checked -- но это надо переделать все API за которыми прячется код работающий с T. За вторым -- заворачивать все входящие T в Unchecked<T>, и обрезать все возможности для программиста добраться до T, кроме как вызвав метод Unchecked::check(&self) -> &T. Этот вариант не требует кардинальных изменений API, но надо будет отследить все места, где данные входят в программу.

Есть ещё подход -- принудительно проверять всё в момент создания T, и это хорошо, но ровно до тех пор, пока у тебя нет возможности столкнутся со 100500 инстансами T, из которых реально нужны лишь парочка. Раст, кстати, так делает со строками: он проверяет валидность utf8-строк на входе, программер может отложить эту проверку на потом, жонглируя &[u8] слайсами, но ежели он хочет API для работы с черектерами и строками из них, ему придётся вызывать конструктор str, а тот проверит валидность utf8.

Твои проблемы решаются даже без раста, если по-хорошему. И они решались ещё до появления раста именно таким образом. Я подцепил идею, по-моему, из cl-sql, который давал API для сборки строк SQL-запросов, при этом проверял и экранировал все непроверенные/неотэкранированные ещё строки, при этом не проверяя и неэкранируя то, что не нужно экранировать.

Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру