Künstliche Intelligenz

Neu in .NET 9.0 [30]: Unsicherheitsfaktor binäre Serialisierung entfernt


Die binäre Serialisierung mit der Klasse BinaryFormatter gibt es bereits seit .NET Framework 1.0 und auch in dem aktuellen .NET Framework 4.8.1. In .NET Core 1.0 war er nicht enthalten, wurde dann aber mit .NET Core 2.0 auf Kundendruck auch in das moderne .NET integriert.




Dr. Holger Schwichtenberg ist technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.




(Bild: coffeemill/123rf.com)

Verbesserte Klassen in .NET 10.0, Native AOT mit Entity Framework Core 10.0 und mehr: Darüber informieren Dr. Holger Schwichtenberg und weitere Speaker der Online-Konferenz betterCode() .NET 10.0 am 18. November 2025. Nachgelagert gibt es sechs ganztägige Workshops zu Themen wie C# 14.0, KI-Einsatz und Web-APIs.

Seit .NET 5.0 ist er als „obsolet“ markiert und erzeugt eine Warnung. Seit .NET 8.0 wurde schon ein Compiler-Fehler für den BinaryFormatter erzeugt, der sich aber unterdrücken ließ.



Der Einsatz der Klasse BinaryFormatter erzeugt einen Compiler-Fehler.

Grund dafür sind die bereits im Jahr 2012 auf der Black-Hat-Konferenz gezeigten Sicherheitslücken in dieser Serialisierungsart.

Microsoft hat im Februar 2024 auf GitHub angekündigt, die binäre Serialisierung mit der Klasse BinaryFormatter in .NET 9.0 zu entfernen. Die Klasse ist in .NET 9.0 zwar weiterhin vorhanden und der Compiler-Fehler lässt sich weiterhin unterdrücken, aber jegliche Nutzung führt zum Laufzeitfehler „Platform not supported“.

Microsoft hat einen BinaryFormatter Migration Guide veröffentlicht, in dem das Unternehmen eine Migration zu anderen Serialisierungsformaten wie XML, Message Pack und ProtoBuf empfiehlt.



Microsoft sagte auf der .NET Conf 2024 ganz deutlich: „Stop using it!“

(Bild: Microsoft)

Eine besondere Herausforderung entsteht im Zusammenspiel mit Windows Forms und Windows Presentation Foundation (WPF), da in beiden GUI-Frameworks die binäre Serialisierung bisher für die Zwischenablage, Drag-and-Drop sowie zum Speichern von Werten zur Entwicklungszeit im Windows-Forms-Designer und dem WPF-Navigationsjournal zum Einsatz kam. Während Microsoft dort für einige Basistypen bereits die Serialisierung geändert hat, müssen Entwicklerinnen und Entwickler bei anderen Typen mit Migrationsaufwand rechnen.

Wer vorhandenen Programmcode nicht migrieren möchte, kann das NuGet-Paket System.Runtime.Serialization.Formatters einbinden und die binäre Serialisierung weiterhin verwenden. Dazu muss man Folgendes in der Projektdatei setzen:



  true
  


Achtung: Microsoft betont neben der mangelnden Sicherheit, dass es für die Klasse BinaryFormatter nun keinerlei Hilfe mehr beim Microsoft-Support gibt.

Alternativ zum NuGet-Paket System.Runtime.Serialization.Formatters bietet Microsoft noch ein Paket System.Formats.Nrbf mit der Klasse NrbfDecoder an, um binär serialisierte Daten sicher zu lesen. Dieses Paket unterliegt aber zahlreichen Einschränkungen.



Das Kompilieren von Programmcode, der den BinaryFormatter verwendet, ist in .NET 9.0 nicht mehr ohne Weiteres möglich.


(rme)



Source link

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Beliebt

Die mobile Version verlassen