安全和公共只读数组字段

更新:2007 年 11 月

一定不要使用托管库的公共只读数组字段来定义应用程序的边界行为或安全性,因为公共只读数组字段可以被修改。

备注

某些 .NET Framework 类中提供包含平台特定边界参数的只读公共字段。例如,InvalidPathChars 字段是一个数组,该数组描述文件路径字符串中不允许使用的字符。在整个 .NET Framework 中存在许多类似的字段。

可以通过您的代码或共享其应用程序域的代码来修改公共只读字段(如 InvalidPathChars)的值。不应使用这样的公共只读数组字段来定义应用程序的边界行为。否则,恶意代码可能会更改边界定义并以出乎意料的方式使用您的代码。

在 .NET Framework 2.0 版和更高版本中,应使用可返回新数组的方法,而不应使用公共数组字段。例如,您不应使用 InvalidPathChars 字段,而应使用 GetInvalidPathChars 方法。

注意,.NET Framework 类型不使用公共字段在内部定义边界类型。.NET Framework 改用单独的私有字段。更改这些公共字段的值不会改变 .NET Framework 类型的行为。

请参见

其他资源

代码安全维护指南