Hello,
Was müssen wir also escapen? Das zu diskutieren, wäre doch wünschenswert!
Das kommt auf den Kontext an. Hier ist der Kontext ein JavaScript-String.
In einem JavaScript-String sind die Stringbegrenzer (" bzw. ') sowie Escape-Sequenzen problematisch (\n, \u1234, \123, \x12, \ vor einem Zeilenumbruch…).
Aua, ja die habe ich auf jeden Fall vergessen.
Also escapen oder verhindern:
Quotations
Ecapezeichen (Backslashes)
etliche nicht druckbare Zeichen (Steuerzeichen)
geschweifte Klammern (?)
Werte quotieren (!)
Bezeichner quotieren (?)
Das hier alles zu diskutieren ist müßig, weil man es nicht händisch tun muss und auch nicht tun sollte. Beliebige Usereingaben oder Sessiondaten sollte man gar nicht in JavaScript als JavaScript schreiben.
Es ist aber hilfreich, zumindestmal eine Checkliste zusammengestellt zu haben. JavaScript-Escaping ist mMn um einiges kompliziertere, als HTML-Escaping.
In einem externen JavaScript sollte man sie nicht unterbringen, denn das kann einfach von einer anderen Site eingebunden werden – und schon sind die Sessiondaten gestohlen. (Gut, man könnte das mit einem POST und einem CSRF-Token absichern, aber wozu der Aufwand.)
Man würde ja aber keine Daten einbinden, die nicht ohnehin öffentlich sind. Wenn ich die Daten im Beispiel aus der Session-Datei geholt habe, dann, weil das hier am einfachsten darzustellen war.
Welche Zeichen sind in JavaScript-Bezeichnern zulässig?
Mir scheint, du verkomplizierst die Sache. Das ist bei sicherheitskritischen Fragen immer gefährlich.
Anders herum.
Ich versuche das Grundverständnis dafür wiederherzustellen, an welchen Stellen die Gefahrenpotentiale liegen. JavaScript sollte doch keine Geheimwissenschaft sein, insbesondere, wo wir es nun in Zukunft wohl alle einsetzen werden. Das Puzzlespiel wächst ja langsam zu einem Bild heran. Die halbfertigen Neuerungen (oder bisher nur mäßig benutzten) der letzten Zeit erreichen nahzu alle zusammen einen betriebsfertigen und omnipräsenten Zustand. Das ist heftig!
Multi-Byte-Kodierung
AJAX
HTML 5
Websockets
"Apps"
Positionsbestimmung
Ausbau der Mobilnezte
usw.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg