Hello,
{"foo":"\u003C/script\u003E\u003Cscript\u003Ealert(/XSS/)\u003C/script\u003E"}
Was ich noch nicht verstehe:
Warum codiert man dann für die Übertragung von X nach JavaScript nicht gleich alle nicht numerischen Ausgaben in Unicode.
Gemeint war hier die textuelle Angabe als "Unicode-Entitäten", also wie \u0022
Es hat je keinen Sinn, wirklich Unicode auszugeben...
Ich habe aber in PHP noch keine Funktion dafür gefunden.
Das wird von HTML nicht interpretiert und JavaScript intgerpretiert es dann.
Was mir auch noch nicht klar ist, ist die Verarbeitungsreihenfolge.
- HTML/JS-Dokument wird ausgeliefert.
- HTML-Parser interpretiert das Markup
- HTML-Parser ersetzt die Entities im HTML
- HTML-Parser stürzt sich auf das JavaScript und übergibt es an den JS-Parser
Wann wird gerendert?
oder wie genau läuft das ab und/oder ist wie verschachtelt?
Die Reihenfolge hat doch einen gravierenden Einfluss auf die Escaping-Stategien.
Und noch eine Frage:
Ist es irgendwie schädlich oder falsch, wenn man Variablenwerte in JS immer in "" einschließt?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg