セキュリティとパブリックの読み取り専用配列フィールド

読み取り専用のパブリック配列フィールドは変更できるため、マネージ ライブラリから読み取り専用のパブリック配列フィールドを使用して、アプリケーションの境界動作やセキュリティを定義しないでください。

解説

.NET Framework の一部のクラスには、プラットフォーム固有の境界パラメーターを含む読み取り専用のパブリック フィールドが含まれます。 たとえば InvalidPathChars フィールドは、ファイル パス文字列で使用できない文字を記述する配列です。 .NET Framework には、これに類似したフィールドが数多くあります。

InvalidPathChars などのパブリックの読み取り専用フィールドの値は、コード、またはコードのアプリケーション ドメインを共有するコードを使用して変更できます。 このような読み取り専用のパブリック配列フィールドを使用して、アプリケーションの境界動作を定義しないでください。 このようなフィールドを使用してアプリケーションの境界動作を定義すると、悪意のあるコードによって境界定義が変更され、コードが悪用される恐れがあります。

.NET Framework Version 2.0 以降では、パブリック配列フィールドを使用する代わりに、新しい配列を返すメソッドを使用します。 たとえば、InvalidPathChars フィールドを使用する代わりに GetInvalidPathChars メソッドを使用します。

.NET Framework の型は、パブリック フィールドを使用して境界の種類を内部的に定義しないことに注意してください。 代わりに .NET Framework では、個別のプライベート フィールドを使用します。 パブリック フィールドの値を変更しても、.NET Framework の型の動作は変わりません。

参照

概念

安全なコーディングのガイドライン