Замена BinaryFormatter в С#C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Замена BinaryFormatter в С#

Сообщение Anonymous »


В настоящее время я использую BinaryFormatter для сериализации своих объектов (строковых[] и byte[])

BinaryFormatter имеет уязвимости безопасности, когда метод. метод Deserialize может использоваться злоумышленниками в качестве вектора для проведения DoS-атак на потребляющие приложения.

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

Я ищу альтернативу BinaryFormatter для сериализации и десериализации объектов в моем коде.
{ классная программа { static void Main(string[] args) { string[] cars = { "Вольво", "БМВ", "Форд", "Мазда" }; вар элемент = новый элемент { Имя = "Оранжевый" }; вар байт = SerializeData (элемент); вар deserializedData = DeserializeData (байты); } частный статический байт [] SerializeData (объект obj) { варbinaryFormatter = новый BinaryFormatter(); используя (var MemoryStream = новый MemoryStream()) { binaryFormatter.Serialize(memoryStream, obj); вернуть памятьStream.ToArray(); } } частный статический объект DeserializeData (байт [] байт) { varbinaryFormatter = новый BinaryFormatter { Binder = новый TestSerializationBinder() }; используя (var MemoryStream = новый MemoryStream (байты)) вернуть двоичныйFormatter.Deserialize(memoryStream); } } [Сериализуемый] элемент публичного класса { частная строка _name; общедоступная строка Имя { получить {вернуть _имя; } установить { _name = значение; } } } общедоступный класс TestSerializationBinder: SerializationBinder { общедоступное переопределение типа BindToType (строковое имя сборки, строковое имя типа) { если (typeName.Equals("TestBinder.Item")) тип возврата (Предмет); if (typeName.Equals("System.String[]")) тип возврата (строка []); вернуть ноль; } } }бина```
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»