Autoescaping und der safe-Filter
Bleiben Sie vor XSS geschützt und deaktivieren Sie den Schutz nur bei Gewissheit.
Autoescaping und der safe-Filter ist eine kostenlose Flask Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Flask Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Flask Academy-Kurs umfasst insgesamt 4 Lektionen.
Die Gefahr von rohem HTML
Wenn Sie Benutzert text direkt in eine Seite schreiben, kann eine bösartige Eingabe Skripte einschleusen. Dieser Angriff heißt XSS, und Flask schützt Sie davor.
Autoescaping ist aktiviert
Jinja2 aktiviert standardmäßig Autoescaping für HTML-Templates. Gefährliche Zeichen werden neutralisiert, bevor sie den Browser erreichen.
Was Escaping bewirkt
Escaping wandelt Zeichen wie das Kleiner-als-Zeichen in sichere Entitäten um. Der Browser zeigt sie dann als Text und niemals als aktives Markup an.
<b>hi</b> becomes <b>hi</b>Warum Text Text bleibt
Da Tags escaped werden, erscheint ein Kommentar wie ein gefälschtes Fettdruck-Tag als normaler Text. Die Seite gibt ihn wörtlich aus, statt ihn auszuführen.
Wenn Sie dem HTML vertrauen
Manchmal soll HTML tatsächlich gerendert werden, etwa bei einem Wert, den Sie selbst erstellt haben. Dafür können Sie das Escaping mit dem safe-Filter deaktivieren.
{{ trusted_html|safe }}So funktioniert safe
Der safe-Filter teilt Jinja2 mit, dass dieser Wert bereits vertrauenswürdig ist und nicht escaped werden soll. Das Markup wird anschließend als echtes HTML gerendert.
Nur bei vertrauenswürdigen Daten
Verwenden Sie safe nur für Inhalte, die Sie selbst kontrollieren. Wenn Sie Benutzereingaben als safe markieren, öffnen Sie genau die XSS-Lücke wieder, die Autoescaping schließen sollte.
HTML in Python als sicher markieren
Sie können vertrauenswürdiges HTML in Ihrer View auch mit Markup kennzeichnen. Ein Markup-String wird beim Rendern automatisch nicht escaped.
from markupsafe import Markup
snippet = Markup('<b>Hi</b>')Escaping lokal deaktivieren
Um das Escaping für einen ganzen Bereich zu überspringen, schließen Sie ihn in einen autoescape-Block ein, der auf false gesetzt ist. Verwenden Sie dies selten und mit großer Vorsicht.
{% autoescape false %}{{ html }}{% endautoescape %}Der escape-Filter
Sie können Escaping auch mit dem escape-Filter oder seinem kurzen Alias e erzwingen. Das ist praktisch, wenn Autoescaping für einen Block deaktiviert ist.
{{ value|e }}Standardmäßig sicher
Die wichtigste Idee: Flask ist von Haus aus sicher. Sie lockern das Escaping nur bewusst und niemals versehentlich – so bleiben Benutzer geschützt.
Kurztest
Sie geben nicht vertrauenswürdige Benutzereingaben in einem Template aus. Was macht Autoescaping mit den darin enthaltenen HTML-Tags?
Zusammenfassung
Sie haben gelernt, dass Flask Ausgaben automatisch escaped, um XSS zu verhindern, und dass der safe-Filter dies nur für vollständig vertrauenswürdiges HTML deaktiviert. Bleiben Sie sicher! 🔒
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Autoescaping und der safe-Filter“ kostenlos?
Ja — der vollständige Text von „Autoescaping und der safe-Filter“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Flask Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Flask Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Autoescaping und der safe-Filter“?
Bleiben Sie vor XSS geschützt und deaktivieren Sie den Schutz nur bei Gewissheit. Du übst Flask Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Flask Academy zu starten?
Keine Vorkenntnisse erforderlich. Flask Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Autoescaping und der safe-Filter“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Flask Academy-Lektion Code schreiben und ausführen?
Ja. Jede Flask Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- render_template und der templates-Ordner
- Daten an ein Template übergeben
- Jinja2-Schleifen und Bedingungen
- Autoescaping und der safe-Filter