Ergebnis dieses Guides
Eine geprüfte Grenze für nicht vertrauenswürdige Eingaben
Arbeitsumgebung
Go mit go.mod, definierter Toolchain und dem vorgesehenen Zielsystem
Wann ist diese Entscheidung wichtig?
Eingaben aus Formularen, Dateien und APIs können bewusst manipuliert sein. Bereinigung an einer Stelle ersetzt keine passende Behandlung am Verwendungsort.
Modellieren Sie Daten mit klaren Typen und geben Sie erwartete Fehler ausdrücklich zurück. Begrenzen Sie nebenläufige Arbeit und sorgen Sie bei Netzwerkzugriffen für einen nachvollziehbaren Abbruch über den zuständigen Kontext.
Sicherheit: Schritt für Schritt.
- 01
Vorbereiten
Erfassen Sie alle externen Eingaben und die Stellen, an denen sie als SQL, HTML, Dateipfad oder Befehl verwendet werden.
- 02
In Go umsetzen
Nutzen Sie parametrisierte Zugriffe, geeignete Ausgabe-Behandlung und begrenzte Berechtigungen. Halten Sie Geheimnisse außerhalb öffentlicher Dateien.
- 03
Im tatsächlichen Projekt prüfen
Führen Sie Build und Tests im Modul aus. Prüfen Sie Fehlerwerte und Aufräumen von Ressourcen; bei gemeinsam veränderlichen Daten gehört die Erkennung von Datenrennen zur passenden Prüfung.
Beispiel zur Überprüfung
So lässt sich das Ergebnis prüfen.
Als Projektkontext dient eine API für interne Integrationen. Der folgende Prüffall ist eine Vorlage für diese Aufgabe und kein Bericht über eine Kundenmessung.
- Eingabe / Auslöser
- Eine Eingabe enthält Sonderzeichen und einen Versuch, die vorgesehene Verarbeitung zu verlassen
- Erwartetes Ergebnis
- Die Eingabe bleibt Dateninhalt und erhält keine zusätzlichen Rechte.
- Fehler- oder Grenzfall
- Ein manipuliertes Objekt oder ein Dateiname ermöglicht keinen Zugriff auf fremde Ressourcen.
Abnahme und typische Fehler.
- Rechte und Werte werden an der richtigen Grenze geprüft.
- Ein manipuliertes Objekt oder ein Dateiname ermöglicht keinen Zugriff auf fremde Ressourcen.
- Nebenläufigkeit und Fehlerbehandlung sollen explizit bleiben statt durch Abstraktion verborgen zu werden.
Typischer Fehler
Ungeprüfte Eingaben in Code, HTML oder SQL sind riskant.
Quellen und Versionshinweis
Die Anleitung beschreibt das Vorgehen; konkrete APIs, Produktfunktionen und Laufzeitgrenzen müssen zur eingesetzten Version passen. Halten Sie Version, Konfiguration und Prüfergebnis im Projekt fest und vergleichen Sie die verlinkte Dokumentation bei Änderungen.