Rolf: Querystring wird nicht aufgelöst

Hallo,

normalerweise wird ein Querystring durch PHP aufglöst und die enthaltenen
Variable findet man u.a. im Array $_GET wieder. $_GET['S'] enthält danach
die Sessions-ID mit der in /tmp/ eine Datei angelegt wird, um z.B. einen
Warwenkorb zu hinterlegen. Alte Dateien werden per Garbage-Collektion
entfernt, soweit der Normalfall.

Nun habe ich mit dem FTP-Client jedoch diesen Eintrag entdeckt:
27146f253bd03c9858c9d575f0357ee6&W=303
Das sieht für mich so aus, als ob PHP den restlichen Querystring einfach
der ersten Variable zugewiesen hat.

Fragen:

  • wie entsteht so ein Fehlverhalten?
  • und wie kann man es verhindern?

m.b.G. Rolf

  1. Hi,

    Nun habe ich mit dem FTP-Client jedoch diesen Eintrag entdeckt:
    27146f253bd03c9858c9d575f0357ee6&W=303
    Das sieht für mich so aus, als ob PHP den restlichen Querystring einfach
    der ersten Variable zugewiesen hat.

    oder aber dass der Parameter-Wert "27146f253bd03c9858c9d575f0357ee6%26W%3E303" lautete.

    • wie entsteht so ein Fehlverhalten?

    Meistens durch Gerüchte. Ich sehe nicht mal ein Indiz für ein Fehlverhalten.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo Cheatah,

      Nun habe ich mit dem FTP-Client jedoch diesen Eintrag entdeckt:
      27146f253bd03c9858c9d575f0357ee6&W=303
      Das sieht für mich so aus, als ob PHP den restlichen Querystring
      einfach der ersten Variable zugewiesen hat.
      oder aber dass der Parameter-Wert "27146f253bd03c9858c9d575f0357ee6%26W%3E303" lautete.

      das brächte auch nix - weil:

      • %3E in keinem Dateinamen vorkommen darf
      • wie entsteht so ein Fehlverhalten?
        Meistens durch Gerüchte.

      das Linux-Dateisystem arbeitet nicht mit Gerüchten, oder doch ... ?

      Ich sehe nicht mal ein Indiz für ein Fehlverhalten.

      tja, da kann ich dann auch nicht helfen ... :-(

      m.b.G. Rolf

      1. Hi,

        Das sieht für mich so aus, als ob PHP den restlichen Querystring
        einfach der ersten Variable zugewiesen hat.
        oder aber dass der Parameter-Wert "27146f253bd03c9858c9d575f0357ee6%26W%3E303" lautete.
        das brächte auch nix - weil:

        Was heisst, dass "braechte" nichts? Ich dachte, der Fall liegt aktuell bereits vor, und du waerst auf der Suche nach der Ursache?

        • %3E in keinem Dateinamen vorkommen darf

        Cheatah duerfte wohl %3D gemeint haben, was ein kodiertes = waere.

        Damit, dass Werte uebergeben werden, mit denen du nicht gerechnet hast, musst du immer rechnen :-)
        Waere nur bloed, wenn dein Script das nicht abfaengt. (Wenn du vom Standard-Sessionmechanismus von PHP redest, der prueft aber automatisch die uebergebene ID auf "erlaubte" Zeichen.)

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
        1. Hallo Chris,

          Cheatah duerfte wohl %3D gemeint haben, was ein kodiertes = waere.

          richtig
          aber wer kodiert sowas ... <grübel>
          Da ist noch mehr 'Schmutz' aufgetaucht, aber damit ist Schluss!

          Waere nur bloed, wenn dein Script das nicht abfaengt.

          tut es jetzt auf simple Art.
          Die SID und die gleichnamige Datei entstehen gleichzeitig,
          also nacheinander, aber in der gleichen Funktion.
          Jede SID, die mit keiner Datei harmoniert wird verworfen!

          (Wenn du vom Standard-Sessionmechanismus von PHP redest, der
          prueft aber automatisch die uebergebene ID auf "erlaubte" Zeichen.)

          ist bei mir auch "all inclusive".

          m.b.G. Rolf

  2. Hi,

    Nun habe ich mit dem FTP-Client jedoch diesen Eintrag entdeckt:
    27146f253bd03c9858c9d575f0357ee6&W=303
    Das sieht für mich so aus, als ob PHP den restlichen Querystring einfach
    der ersten Variable zugewiesen hat.

    in der Konfiguration von PHP könnte
    arg_separator.input
    den Wert ';' haben (dann würden alle & ignoriert)

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.