Sicherheit · Frage 8 von 12
Ein Besucher gibt als Namen <script>alert(1)</script> ein, das Fluid-Template gibt ihn mit {name} aus. Was passiert?
1 Antwort ist richtig. Einfach
Lösung anzeigen
Lösung
- C Der Text erscheint sichtbar auf der Seite, weil Fluid die spitzen Klammern maskiert
Erklärung
Fluid maskiert Variablen wie {name} bei der Ausgabe automatisch mit htmlspecialchars(): Aus <script> wird <script>, und der Browser zeigt die Zeichen als Text an, statt sie als HTML zu deuten. Dieser Automatismus ist der wichtigste Schutz vor Cross-Site-Scripting (XSS) in TYPO3-Templates. Er greift nicht mehr, wenn man den Wert mit <f:format.raw> oder {name -> f:format.raw()} ausgibt – das sollte man bei Benutzereingaben nie tun. Fluid löscht den Inhalt nicht und wirft auch keinen Fehler; der Wert bleibt erhalten, er wird nur unschädlich gemacht.