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

Beitrag lesen

Hello,

<?php ### buecher.js.php ###
    header('Content-Type: Text/Javascript; Charset=utf-8');
    session_start();
    echo 'var buecher = new Array("' . implode('","', $_SESSION['buecher']) .'");' . PHP_EOL;
?>

In dem Code ist keinerlei kontextgerechtes Escaping drin! Er ist gefährlich! Bitte nicht benutzen!

Bitte nicht nur meckern, sondern zeigen, wie es geht!
Du müsstest dafür nur über eine halbe Zeile diskutieren.

Hier ging es erstmal nur um das Verfahren. Das Escaping notwendig ist, hat dedlfix schon ziemlich am Anfang geschrieben.

Was müssen wir also escapen? Das zu diskutieren, wäre doch wünschenswert!
Denn hier ist ein "htmlspecialchars()" fehl am Platze, obwohl die Daten auch indirekt in den HTML-Kontext gestellt werden.

Ein Beispiel, warum und wie das notwendig sein könnte, hat Mathias gezeigt:
https://forum.selfhtml.org/?t=217757&m=1496841

Das trifft aber nicht alles auf die Variablen und die Bezichner (Keys) in diesem Besipiel zu.

Also escapen oder verhindern:

  • Quotations

  • Ecapezeichen (Backslashes)

  • etliche nicht druckbare Zeichen (Steuerzeichen)

  • geschweifte Klammern (?)

  • Werte quotieren (!)

  • Bezeichner quotieren (?)

  • und was noch alles?

Welche Zeichen sind in JavaScript-Bezeichnern zulässig?

Da es hier um die Erzeugung von Arrays bzw. Objekten geht, beträfe dies die Elementbezeichner. Der Variablenbezeichner wird vom Programmierer vorgegeben.

Außerdem muss vor dem Zugriff auf das Subarray im $_SESSIONS-Array sel

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