Sicherheit von Webanwendungen · Middle · Frage 1 von 75
Ein Wert wird HTML-escaped und dann in ein Inline-Skript gesetzt: <script>var q = '{{value}}';</script>. Warum ist das trotzdem unsicher?
- 1Weil Inline-Skripte keine Template-Variablen enthalten dürfen
- 2Ein JS-String-Kontext braucht JS-Kodierung, kein HTML-Escaping
- 3Weil HTML-Escaping alle Anführungszeichen in Leerzeichen verwandelt
Antwort zeigen
Richtige Antwort: Ein JS-String-Kontext braucht JS-Kodierung, kein HTML-Escaping
Erklärung
Jeder Kontext hat eigene Regeln fürs Escaping. Am sichersten vermeidet man es: Daten in ein data--Attribut oder einen JSON-Block legen und aus dem eigenen Skript lesen.