Události
Vytváření inteligentních aplikací
17. 3. 23 - 21. 3. 23
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatTento prohlížeč se už nepodporuje.
Upgradujte na Microsoft Edge, abyste mohli využívat nejnovější funkce, aktualizace zabezpečení a technickou podporu.
Serialize
a Deserialize
metody v BinaryFormatter, Formattera IFormatter jsou nyní zastaralé jako upozornění. BinaryFormatter Serializace je navíc pro ASP.NET aplikace zakázána ve výchozím nastavení.
Poznámka
V .NET 7 jsou ovlivněná rozhraní API zastaralá jako chyba. Další informace naleznete v tématu BinaryFormatter serializace ROZHRANÍ API vytváří chyby kompilátoru.
Vzhledem k ohrožením zabezpečení jsou BinaryFormatternyní následující metody zastaralé a vytvářejí upozornění v době kompilace s ID SYSLIB0011
. Kromě toho v ASP.NET Core 5.0 a novějších aplikacích vyvolá NotSupportedExceptionvýjimku , pokud webová aplikace nemá znovu povolené BinaryFormatter funkce.
Následující metody serializace jsou také zastaralé a vytvářejí upozornění SYSLIB0011
, ale nemají žádné změny chování:
5,0
Tyto metody jsou označené zastaralé jako součást úsilí o ukončení využití BinaryFormatter v ekosystému .NET.
Přestaňte v kódu používat BinaryFormatter . Místo toho zvažte použití JsonSerializer nebo XmlSerializer. Další informace naleznete v průvodci zabezpečením BinaryFormatter.
Můžete dočasně potlačit BinaryFormatter upozornění v době kompilace, což je SYSLIB0011
. Doporučujeme, abyste před výběrem této možnosti důkladně posoudili rizika vašeho kódu. Nejjednodušší způsob, jak potlačit upozornění, je obklopit jednotlivé weby volání direktivami #pragma
.
// 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
}
Upozornění v souboru projektu můžete také potlačit.
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<!-- Disable "BinaryFormatter is obsolete" warnings for entire project -->
<NoWarn>$(NoWarn);SYSLIB0011</NoWarn>
</PropertyGroup>
Pokud potlačíte upozornění v souboru projektu, upozornění se potlačí pro všechny soubory kódu v projektu. SYSLIB0011
Potlačení nepotlačí upozornění způsobená jinými zastaralými rozhraními API.
Pokud chcete v ASP.NET aplikacích dál používat BinaryFormatter , můžete ho znovu povolit v souboru projektu. Důrazně to ale nedoporučujeme. Další informace naleznete v průvodci zabezpečením BinaryFormatter.
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<!-- Warning: Setting the following switch is *NOT* recommended in web apps. -->
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
</PropertyGroup>
Další informace o doporučenýchakcích
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby:
Události
Vytváření inteligentních aplikací
17. 3. 23 - 21. 3. 23
Připojte se k řadě meetupů a vytvořte škálovatelná řešení AI založená na skutečných případech použití s kolegy vývojáři a odborníky.
ZaregistrovatŠkolení
Modul
Guide to Secure .NET Development with OWASP Top 10 - Training
Evaluate security risks that come with insecure application development patterns and practices