Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA5367 |
Cím | A típusok nem szerializálása mutatómezőkkel |
Kategória | Biztonság |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 9-ben | Nem |
Ok
A mutatók nem biztonságosak, ami azt jelenti, hogy nem garantálható a memória helyessége, amelyre mutatnak. A mutatómezőkkel rendelkező típusok szerializálása tehát biztonsági kockázatot jelent, mivel lehetővé teheti, hogy a támadók irányíthassák a mutatót.
Szabály leírása
Ez a szabály ellenőrzi, hogy van-e szerializálható osztály mutatómezővel vagy tulajdonsággal. A szerializálni nem tudó tagok lehetnek mutatók, például statikus tagok vagy a velük System.NonSerializedAttributemegjelölt mezők.
Szabálysértések kijavítása
Ne használjon mutatótípusokat a szerializálható osztály tagjaihoz, és ne szerializálja a mutatókat tartalmazó tagokat.
Mikor kell letiltani a figyelmeztetéseket?
Ne kockáztasd a mutatók szerializálható típusokban való használatát.
Példák pszeudokódokra
Megsértés
using System;
[Serializable()]
unsafe class TestClassA
{
private int* pointer;
}
1\. megoldás
using System;
[Serializable()]
unsafe class TestClassA
{
private int i;
}
2\. megoldás
using System;
[Serializable()]
unsafe class TestClassA
{
private static int* pointer;
}