安全及公開唯讀陣列欄位

請勿使用來自 Managed 程式庫的唯讀公用陣列欄位,來定義應用程式的界限行為或安全性,因為唯讀公用陣列欄位是可以修改的。

備註

有些 .NET Framework 類別包括唯讀的公用欄位,內含平台特定的界限參數。 例如,InvalidPathChars 欄位是一個陣列,說明了不允許出現在檔案路徑字串中的字元。 整個 .NET Framework 有許多類似的欄位。

InvalidPathChars 這類公用唯讀欄位的值,可以利用您的程式碼或應用程式定義域的共用程式碼加以修改。 您不應該像這樣使用唯讀公用陣列欄位,來定義應用程式的界限行為。 如果這麼做,會讓惡意程式碼有機會變更界限定義,並以無法預期的方式使用您的程式碼。

在 2.0 (含) 以後版本的 .NET Framework 中,您必須使用傳回新陣列的方法,而非使用公用陣列欄位。 例如,您應該使用 GetInvalidPathChars 方法,而非 InvalidPathChars 欄位。

請注意,.NET Framework 型別內部也不使用公用欄位來定義界限型別。 .NET Framework 使用的是個別的私用欄位。 變更這些公用欄位的值並不會改變 .NET Framework 型別的行為。

請參閱

概念

安全程式碼撰寫方針