.NET 9
29.08.2024, 08:06 Uhr
BinaryFormatter in .NET 9 entfernt
Die .NET-Plattform hat mit der Version 9 den BinaryFormatter aus Sicherheitsgründen entfernt.
![](/img/1/7/6/6/5/1/8/merge_sm_w580_h326.jpg)
(Quelle: dotnetpro)
In .NET 9 hat Microsoft die Implementierung des BinaryFormatter aus der Runtime entfernt. Das sorgt dafür, dass das API zwar weiterhin existiert, aber nur noch Ausnahmen auslöst - unabhängig vom Projekttyp. Die Gründe für diesen Schritt sind vielschichtig, aber insbesondere die Sicherheitsrisiken, die mit der Verwendung des BinaryFormatter verbunden sind, stehen im Vordergrund.
Der BinaryFormatter, der in der ersten Veröffentlichung des .NET Frameworks im Jahr 2002 implementiert wurde, erweist sich als gefährlich, da jeder Deserializer, der Informationen über die zu erstellenden Objekte erhält, potenzielle Sicherheitsprobleme mit sich bringen kann.
Den Entwicklern wird nahe gelegt, BinaryFormatter komplett aus Projekten zu entfernen und sich stattdessen nach sichereren Serialisierungsoptionen umzuschauen. Von Microsoft empfohlene Alternativen sind beispielsweise JSON- oder XML-Serialisierungsformate, die beide in der .NET-Bibliothek enthalten sind. Für die Entwickler, die auf binäre Serialisierungsformate angewiesen sind, gibt es Open-Source-Alternativen wie MessagePack und Protocol Buffers. Für den Übergang empfiehlt Microsoft die Verwendung des neuen NrbfDecoders, um binäre Payloads zu lesen, ohne die komplette Deserialisierung durchzuführen.
Sollte es in einem Projekt notwendig sein, den BinaryFormatter weiterhin zu verwenden, wird auch auf die Möglichkeit hingewiesen, das nicht unterstützte NuGet-Paket System.Runtime.Serialization.Formatters zu installieren, um die frühere Funktionalität wiederherzustellen. Die Nutzung dieses Pakets ist jedoch nicht ratsam, da es bekannte Sicherheitslücken mit sich bringt.