Share via


CA5367: Typen niet serialiseren met aanwijzervelden

Eigenschappen Weergegeven als
Regel-id CA5367
Titel Typen met aanwijzervelden niet serialiseren
Categorie Beveiliging
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld in .NET 9 Nee

Oorzaak

Aanwijzers zijn niet veilig, wat betekent dat u de juistheid van het geheugen waarop ze wijzen niet kunt garanderen. Het serialiseren van typen met aanwijzervelden is dus een beveiligingsrisico, omdat een aanvaller hierdoor de aanwijzer kan beheren.

Beschrijving van regel

Met deze regel wordt gecontroleerd of er een serialiseerbare klasse is met een aanwijzerveld of eigenschap. Leden die niet kunnen worden geserialiseerd, kunnen een aanwijzer zijn, zoals statische leden of velden die zijn gemarkeerd met System.NonSerializedAttribute.

Schendingen oplossen

Gebruik geen aanwijzertypen voor leden in een serialiseerbare klasse of serialiseer de leden die aanwijzers zijn niet.

Wanneer waarschuwingen onderdrukken

Neem niet het risico om pointers te gebruiken in serialiseerbare typen.

Voorbeelden van pseudocode

Schending

using System;

[Serializable()]
unsafe class TestClassA
{
    private int* pointer;
}

Oplossing 1

using System;

[Serializable()]
unsafe class TestClassA
{
    private int i;
}

Oplossing 2

using System;

[Serializable()]
unsafe class TestClassA
{
    private static int* pointer;
}