Sicherheit und schreibgeschützte öffentliche Arrayfelder

Verwenden Sie niemals schreibgeschützte öffentliche Arrayfelder aus verwalteten Bibliotheken, um die Sicherheit und das Verhalten von Anwendungen im Grenzbereich zu definieren, da schreibgeschützte öffentliche Arrayfelder geändert werden können.

Hinweise

Einige .NET Framework-Klassen umfassen schreibgeschützte öffentliche Felder, die plattformspezifische Begrenzungsparameter enthalten. Das InvalidPathChars-Feld ist z. B. ein Array, das die Zeichen beschreibt, die in der Zeichenfolge eines Dateipfads nicht zulässig sind. Es sind viele ähnliche Felder in .NET Framework vorhanden.

Die Werte von öffentlichen schreibgeschützten Feldern (z. B. InvalidPathChars) können durch vom Benutzer geschriebenen Code oder Code geändert werden, der in derselben Anwendungsdomäne verwendet wird. Sie sollten schreibgeschützte öffentliche Arrayfelder nicht auf diese Weise dazu verwenden, das Verhalten von Anwendungen im Grenzbereich zu definieren. Dies könnte dazu führen, dass bösartiger Code die Begrenzungsdefinitionen ändert und den Code auf unerwartete Weise verwendet.

In Version 2.0 und späteren Versionen von .NET Framework müssen Sie Methoden verwenden, die keine öffentlichen Arrayfelder verwenden, sondern ein neues Array zurückgeben. Beispielsweise sollten Sie anstelle des Feldes InvalidPathChars die GetInvalidPathChars-Methode verwenden.

Beachten Sie, dass die .NET Framework-Typen Begrenzungstypen nicht mithilfe öffentlicher Felder intern definieren. Stattdessen werden von .NET Framework hierfür separate private Felder verwendet. Durch das Ändern der Werte dieser öffentlichen Felder wird nicht das Verhalten von .NET Framework-Typen geändert.

Siehe auch

Konzepte

Richtlinien für das Schreiben von sicherem Code