Ergebnis dieses Guides
Eine geprüfte Grenze für nicht vertrauenswürdige Eingaben
Arbeitsumgebung
Python mit festgehaltener Interpreterversion und isolierter Projektumgebung
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.
Trennen Sie Datenverarbeitung von Datei-, Netzwerk- und Konsolenzugriffen. Behandeln Sie veränderliche Listen und Dictionaries bewusst; Typannotationen unterstützen Werkzeuge, erzwingen aber keine automatische Laufzeitvalidierung.
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 Python 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
Starten Sie die Prüfung mit demselben Interpreter wie die Anwendung. Kontrollieren Sie fehlende Schlüssel, leere Sammlungen und erwartete Exceptions sowie die verwendeten Paketversionen.
Beispiel zur Überprüfung
So lässt sich das Ergebnis prüfen.
Als Projektkontext dient einen Dienst, der eingehende Dokumente verarbeitet. 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.
- Abhängigkeiten und Laufzeitumgebung müssen reproduzierbar sein, besonders bei Datenjobs.
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.