Tom: Nicht nur meckern, zeigen! Escaping für JavaScript-Variablen

Beitrag lesen

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?

http://es5.github.io/#x7.6

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

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
Die ultimative Seite für Selbermacher
0 48

PHP array an javascript function übergeben

javascriptnewbie
  • javascript
  1. 0
    dedlfix
  2. 0
    Der Martin
    1. 0
      molily
    2. 0
      javascriptnewbie
      1. 0
        M.
        1. 0

          Gute Idee

          Tom
          • menschelei
      2. 1
        ChrisB
        1. 0
          javascriptnewbie
          1. 0
            molily
            1. 0
              javascriptnewbie
              1. 0
                M.
              2. 6
                molily
      3. 0
        Tom
        1. 0
          javascriptnewbie
          1. 0
            Tom
            1. 0
              Sven Rautenberg
              1. 0

                Nicht nur meckern, zeigen! Escaping für JavaScript-Variablen

                Tom
                1. 0
                  molily
                  1. 0
                    tami
                    1. 0
                      molily
                      1. 0
                        tami
                  2. 0
                    Tom
                    1. 0
                      molily
              2. 0

                PHP json_encode - kontextspezifisches Escaping

                tami
                1. 0
                  tami
                  1. 0
                    molily
                    1. 0
                      Sven Rautenberg
                      1. 0
                        molily
                        1. 0
                          molily
                        2. 0

                          JSON in HTML einbetten

                          molily
                          1. 1

                            JSON in HTML einbetten - RoR "vs" ZF

                            tami
                            1. 0
                              tami
                              1. 0
                                Tom
                                1. 0
                                  molily
                            2. 0
                              molily
                              1. 0
                                tami
                                1. 0
                                  tami
                              2. 0

                                JSON-Paket mit composer vom Zend Framework holen

                                tami
                              3. 2

                                JSON in HTML einbetten

                                molily
                                • php
                          2. 0

                            Reihenfolge der Auswertung?

                            Tom
                            1. 0
                              tami
                            2. 0
                              tami
                            3. 0

                              Reihenfolge der Auswertung? Codierung, kleine Korrektur

                              Tom
                            4. 0
                              molily
                              1. 0
                                Tom
                                1. 0
                                  molily
                  2. 0
                    Tom