Ergebnis dieses Guides
Eine geprüfte Grenze für nicht vertrauenswürdige Eingaben
Arbeitsumgebung
TypeScript mit projektbezogener tsconfig und der vorgesehenen JavaScript-Laufzeit
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.
Beschreiben Sie interne Verträge möglichst genau und halten Sie unbekannte externe Werte zunächst als unknown. Eine Typbehauptung prüft keine Netzwerkantwort. Die fertige Ausgabe läuft weiterhin unter den Regeln der gewählten JavaScript-Umgebung.
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 TypeScript 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
Prüfen Sie sowohl die Typen mit dem Projektcompiler als auch das tatsächliche Laufzeitverhalten. Ein erfolgreicher Typcheck ersetzt keine Eingabeprüfung und keinen Berechtigungstest.
Beispiel zur Überprüfung
So lässt sich das Ergebnis prüfen.
Als Projektkontext dient eine Webanwendung mit mehreren Formularen und API-Antworten. 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.
- Typen werden zur Laufzeit entfernt; externe Daten müssen trotzdem validiert 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.