Training
Module
Guide to Secure .NET Development with OWASP Top 10 - Training
Evaluate security risks that come with insecure application development patterns and practices
Deze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
Serialize
en Deserialize
methoden voor BinaryFormatter, Formatteren IFormatter zijn nu verouderd als waarschuwing. Bovendien is serialisatie standaard BinaryFormatter verboden voor ASP.NET apps.
Notitie
In .NET 7 zijn de betrokken API's verouderd als fout. Zie BinaryFormatter-serialisatie-API's voor meer informatie over compilerfouten.
Vanwege beveiligingsproblemen inBinaryFormatter, zijn de volgende methoden nu verouderd en produceren ze een compilatietijdwaarschuwing met idSYSLIB0011
. Bovendien worden in ASP.NET Core 5.0- en hoger-apps een NotSupportedException, tenzij de web-app functionaliteit opnieuw heeft ingeschakeld BinaryFormatter .
De volgende serialisatiemethoden zijn ook verouderd en produceren waarschuwing SYSLIB0011
, maar hebben geen gedragswijzigingen:
5,0
Deze methoden worden gemarkeerd als verouderd als onderdeel van een poging om het gebruik van BinaryFormatter het .NET-ecosysteem af te sluiten.
Stop met het gebruik van BinaryFormatter uw code. Overweeg in plaats daarvan het gebruik JsonSerializer of XmlSerializer. Zie de beveiligingshandleiding binaryFormatter voor meer informatie.
U kunt de waarschuwing over de BinaryFormatter compilatietijd tijdelijk onderdrukken.SYSLIB0011
We raden u aan uw code grondig te beoordelen op risico's voordat u deze optie kiest. De eenvoudigste manier om de waarschuwingen te onderdrukken, is door de afzonderlijke oproepsite te omringen met #pragma
instructies.
// Now read the purchase order back from disk
using (var readStream = new FileStream("myfile.bin", FileMode.Open))
{
var formatter = new BinaryFormatter();
#pragma warning disable SYSLIB0011
return (PurchaseOrder)formatter.Deserialize(readStream);
#pragma warning restore SYSLIB0011
}
U kunt de waarschuwing ook onderdrukken in het projectbestand.
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<!-- Disable "BinaryFormatter is obsolete" warnings for entire project -->
<NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
</PropertyGroup>
Als u de waarschuwing in het projectbestand onderdrukt, wordt de waarschuwing onderdrukt voor alle codebestanden in het project. SYSLIB0011
Onderdrukken onderdrukt geen waarschuwingen die worden veroorzaakt door het gebruik van andere verouderde API's.
Als u wilt blijven gebruiken BinaryFormatter in ASP.NET-apps, kunt u deze opnieuw inschakelen in het projectbestand. Het wordt echter sterk aangeraden dit niet te doen. Zie de beveiligingshandleiding binaryFormatter voor meer informatie.
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<!-- Warning: Setting the following switch is *NOT* recommended in web apps. -->
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>
Zie BinaryFormatter-obsoletion- en disablement-fouten oplossen voor meer informatie over aanbevolen acties.
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven:
Training
Module
Guide to Secure .NET Development with OWASP Top 10 - Training
Evaluate security risks that come with insecure application development patterns and practices