Sicherheit (C#-Programmierhandbuch)

Aktualisiert: November 2007

Sicherheit ist ein unverzichtbarer Aspekt jeder C#-Anwendung und muss somit in jeder Entwicklungsphase bedacht werden: Nicht erst, wenn Entwurf und Implementierung abgeschlossen sind.

C#-spezifische Sicherheitsempfehlungen

Diese Liste umfasst nicht alle potenziellen Sicherheitsprobleme. Es hebt einige allgemeine Probleme für C#-Entwickler hervor.

  • Verwenden Sie das checked-Schlüsselwort, um den Überlaufprüfungskontext für arithmetische Operationen und Konvertierungen mit ganzzahligen Typen zu steuern.

  • Verwenden Sie für Parameter immer den restriktivsten Datentyp. Wenn beispielsweise ein die Größe der Datenstruktur beschreibender Wert an eine Methode übergeben wird, verwenden Sie eine Ganzzahl ohne Vorzeichen anstatt eine Ganzzahl.

  • Treffen Sie keine Entscheidungen allein auf Grundlage von Dateinamen. Dateinamen können auf viele verschiedene Arten ausgedrückt werden. Es besteht die Gefahr, dass die Überprüfung einer bestimmten Datei umgangen wird.

  • Kennwörter oder andere vertrauliche Informationen dürfen niemals in die Anwendung hartcodiert werden.

  • Überprüfen Sie immer Eingaben, mit denen SQL-Abfragen generiert werden.

  • Überprüfen Sie alle Eingaben in die Methoden. Anhand der im System.Text.RegularExpressions-Namespace vorhandenen Methoden mit regulären Ausdrücken lässt sich gut überprüfen, ob Eingaben (z. B. eine E-Mail-Adresse) die korrekte Form haben.

  • Zeigen Sie keine Ausnahmeinformationen an: Diese enthalten wertvolle Hinweise für mögliche Angreifer.

  • Stellen Sie sicher, dass die Anwendung mit so wenig Berechtigungen wie möglich ausgeführt werden kann. Nur wenige Anwendungen erfordern, dass ein Benutzer als Administrator angemeldet ist.

  • Verwenden Sie keine eigenen Verschlüsselungsalgorithmen. Verwenden Sie die System.Security.Cryptography-Klassen.

  • Geben Sie den Assemblys starke Namen.

  • Speichern Sie keine vertraulichen Informationen in XML-Dateien oder anderen Konfigurationsdateien.

  • Unterziehen Sie verwalteten Code, der systemeigenen Code umschließt, einer sorgfältigen Prüfung. Überprüfen Sie, ob der systemeigene Code sicher ist.

  • Seien Sie vorsichtig mit Delegaten, die von außerhalb der Anwendung übergeben werden.

  • Führen Sie das Visual Studio-Codeanalysetool für Ihre Assemblys aus, um die Einhaltung der Microsoft .NET Framework-Entwurfsrichtlinien sicherzustellen. Dieses Tool findet und warnt Sie außerdem vor über 200 Codefehlern. Weitere Informationen hierzu finden Sie unter Erkennen und Korrigieren von Fehlern in verwaltetem Code.

Andere Sicherheitsressourcen

Auf den folgenden Microsoft-Websites werden ausführliche Informationen über das Erstellen von sicherer, zuverlässiger Software bereitgestellt.

Siehe auch

Konzepte

C#-Programmierhandbuch

Sicherheitstools

Weitere Ressourcen

Sicherheit in systemeigenem Code und .NET Framework-Code

Richtlinien für das Schreiben von sicherem Code