BinarySerialization, Giga
https://giga.chat/link/gcsOiYjKbS
BinaryFormatter и связанная с ним бинарная сериализация были исключены из основного дистрибутива .NET Core начиная с версии .NET 5.
Это было сделано по соображениям безопасности, так как бинарная сериализация считалась уязвимой для атак,
связанных с десериализацией незащищенных данных.
История исключения BinaryFormatter:
- До .NET Core 3.1: BinaryFormatter был доступен и использовался для бинарной сериализации.
- .NET 5: BinaryFormatter был удален из основной поставки .NET, но остался доступным через отдельный NuGet-пакет:
- System.Runtime.Serialization.Formatters.
- .NET 6 и новее: BinaryFormatter остается доступным через тот же NuGet-пакет,
- однако его использование настоятельно не рекомендуется из-за потенциальных уязвимостей.
Почему исключили BinaryFormatter?
Бинарная сериализация через BinaryFormatter имеет ряд серьезных недостатков с точки зрения безопасности:
- Уязвимость к атакам на десериализацию: Злоумышленник может передать вредоносные данные,
- которые приведут к выполнению произвольного кода при десериализации.
- Неопределенность формата данных: Формат сериализованных данных может меняться от версии к версии,
- что делает его ненадежным для долгосрочного хранения данных.
- Производительность: BinaryFormatter медленнее и менее эффективен по сравнению с современными форматами сериализации,
- такими как JSON или Protobuf.
Альтернативы BinaryFormatter:
Если тебе нужна сериализация данных, существуют более безопасные и эффективные альтернативы:
- JSON: Использование форматов, таких как JSON, через библиотеки вроде Newtonsoft.Json или System.Text.Json.
- Protobuf: Протокол буферов (Protocol Buffers) — эффективный и компактный формат сериализации.
- XML Serialization: Сериализация в XML формат, хотя она также имеет свои недостатки.
Комментариев нет:
Отправить комментарий