Поделиться через


Безопасность и поля-массивы с общим доступом только для чтения

Обновлен: Ноябрь 2007

Поля-массивы с общим доступом только для чтения не следует использовать из управляемых библиотек для определения поведения границ или обеспечения безопасности приложений, поскольку они могут быть изменены.

Замечания

Некоторые классы .NET Framework включают поля с общим доступом только для чтения, содержащие платформо-зависимые граничные параметры. Например, поле InvalidPathChars представляет собой массив, описывающий символы, недопустимые в строке пути к файлу. В среде .NET Framework имеется немало подобных полей.

Значения полей с общим доступом только для чтения, таких как InvalidPathChars, могут быть изменены кодом приложения, или кодом, относящимся к тому же домену приложения. Подобные поля-массивы с общим доступом только для чтения не следует использовать для определения граничного поведения приложений. При нарушении этой рекомендации вредоносный код сможет изменить определения границ и использовать код непредусмотренным образом.

В .NET Framework версии 2.0 или более поздней следует использовать методы, возвращающие новый массив, вместо использования полей-массивов с общим доступом. Например, вместо использования поля InvalidPathChars следует воспользоваться методом GetInvalidPathChars.

Обратите внимание, что типы .NET Framework не используют поля с общим доступом для внутреннего определения граничных типов. Вместо этого в .NET Framework используются отдельные закрытые поля. Изменение значений полей с общим доступом не влияет на поведение типов .NET Framework.

См. также

Другие ресурсы

Правила написания безопасного кода