Dela via


CA2315: Använd inte den osäkra deserialiseraren ObjectStateFormatter

Egenskap Värde
Regel-ID CA2315
Title Använd inte osäker deserialisatorn ObjectStateFormatter
Kategori Säkerhet
Korrigeringen är antingen invasiv eller icke-invasiv Oumbrytbar
Aktiverad som standard i .NET 10 Nej
Tillämpliga språk C# och Visual Basic

Orsak

En System.Web.UI.ObjectStateFormatter deserialiseringsmetod anropades eller refererades till.

Regelbeskrivning

Osäkra deserialiserare är sårbara när de-serialiserar data från icke-betrodda källor. En angripare kan ändra serialiserade data så att de innehåller oväntade typer för att mata in objekt med skadliga biverkningar. En attack mot en osäker deserialiserare kan till exempel köra kommandon på det underliggande operativsystemet, kommunicera via nätverket eller ta bort filer.

Den här regeln hittar System.Web.UI.ObjectStateFormatter deserialiseringsmetodanrop eller referenser.

Så här åtgärdar du överträdelser

När du ska ignorera varningar

Det är säkert att ignorera en varning från den här regeln om:

  • Du vet att indata är betrodda. Tänk på att programmets förtroendegräns och dataflöden kan ändras över tid.
  • Du har vidtagit en av försiktighetsåtgärderna i Så här åtgärdar du överträdelser.

Exempel på pseudokod

Kränkning

using System.IO;
using System.Web.UI;

public class ExampleClass
{
    public object MyDeserialize(byte[] bytes)
    {
        ObjectStateFormatter formatter = new ObjectStateFormatter();
        return formatter.Deserialize(new MemoryStream(bytes));
    }
}
Imports System.IO
Imports System.Web.UI

Public Class ExampleClass
    Public Function MyDeserialize(bytes As Byte()) As Object
        Dim formatter As ObjectStateFormatter = New ObjectStateFormatter()
        Return formatter.Deserialize(New MemoryStream(bytes))
    End Function
End Class