事件
CA5367:不要使用指標欄位串行化類型
屬性 | 值 |
---|---|
規則識別碼 | CA5367 |
職稱 | 請勿使用指標欄位串行化類型 |
類別 | 安全性 |
修正程式是中斷或非中斷 | 不中斷 |
預設在 .NET 9 中啟用 | No |
指標的類型不安全,這表示您無法保證指標指向的記憶體正確性。 因此,使用指標欄位串行化類型是安全性風險,因為它可能會讓攻擊者控制指標。
此規則會檢查是否有具有指標字段或屬性的可串行化類別。 無法串行化的成員可以是指針,例如以標示的 System.NonSerializedAttribute靜態成員或字段。
請勿對可串行化類別中的成員使用指標類型,或不要串行化屬於指標的成員。
不要冒險在可串行化類型中使用指標。
C#
using System;
[Serializable()]
unsafe class TestClassA
{
private int* pointer;
}
C#
using System;
[Serializable()]
unsafe class TestClassA
{
private int i;
}
C#
using System;
[Serializable()]
unsafe class TestClassA
{
private static int* pointer;
}