Rico: Fehler beim Fehler

Hi,

ich versuche, in meinem CMS Fehler zu loggen. Hierzu logge ich u.a. die aufgerufene URL, die den Fehler verursacht. Oder anders, ich versuche, genau das zu tun. Aber es gelingt nicht immer.

Vorgehensweise:

Ich packe (überschreibe) bei jedem Seitenaufruf $_SERVER['QUERY_STRING'] in eine Session. Wenn ich einen Fehler ausgebe, speichere ich dann zuvor den Fehler in der db an. In eine Spalte trage ich dann diesen $_SERVER['QUERY_STRING'] aus der Session ein.

Geht nun z.B. jemand hin und macht aus skript.php?ID=56 durch Manipulation der Adresszeile skript.php?ID=schwachfug, dann fange ich den Fehler natürlich ab und mein Eintrag sollte genau das beinhalten.

Tut er aber nicht zwingend.

Wo liegt der Knackpunkt und wie kann ich das gewährleisten?

VG, Rico

  1. Geht nun z.B. jemand hin und macht aus skript.php?ID=56 durch Manipulation der Adresszeile skript.php?ID=schwachfug, dann fange ich den Fehler natürlich ab und mein Eintrag sollte genau das beinhalten.

    Tut er aber nicht zwingend.

    Hinweis: Oft steht nur das "Original" skript.php?ID=56 drin.

  2. Hi,

    Ich packe (überschreibe) bei jedem Seitenaufruf $_SERVER['QUERY_STRING'] in eine Session. Wenn ich einen Fehler ausgebe, speichere ich dann zuvor den Fehler in der db an. In eine Spalte trage ich dann diesen $_SERVER['QUERY_STRING'] aus der Session ein.

    Wozu soll das gut sein?

    Warum der Umweg über die Session?

    Geht nun z.B. jemand hin und macht aus skript.php?ID=56 durch Manipulation der Adresszeile skript.php?ID=schwachfug, dann fange ich den Fehler natürlich ab und mein Eintrag sollte genau das beinhalten.

    Tut er aber nicht zwingend.

    Wo liegt der Knackpunkt

    Woher sollen wir wissen, was du falsch machst?

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. BlaBla
      MfG ChrisB

      Manchmal habe ich den Eindruck, dass Du bei Deinen schnellen Antworten nach dem Motto "Erster!" antwortest.

      1. Hallo,

        BlaBla
        MfG ChrisB
        Manchmal habe ich den Eindruck, dass Du bei Deinen schnellen Antworten nach dem Motto "Erster!" antwortest.

        den Eindruck habe ich nicht; Chris hat genau die Punkte angesprochen, die mir beim Durchlesen auch aufgefallen sind.

        Ich packe (überschreibe) bei jedem Seitenaufruf $_SERVER['QUERY_STRING'] in eine Session.
        Wozu soll das gut sein?
        Warum der Umweg über die Session?

        Auch ich frage mich: Wozu in eine Session? Warum greifst du nicht in dem Moment, in dem du den Fehler feststellst, direkt auf $_SERVER['QUERY_STRING'] zu, oder sogar $_SERVER['REQUEST_URI'], wo genau das drinstehen müsste, was zum Fehler geführt hat?

        Woher sollen wir wissen, was du falsch machst?

        Du beschreibst sehr vage, was du tust, zeigst aber keinerlei Code oder etwas, das den Kontrollfluss verdeutlicht. Woher sollen wir also ahnen, ob dein PHP-Code wirklich das tut, was du vermutest?

        So long,
         Martin

        --
        Fische, die bellen, beißen nicht.
        1. den Eindruck habe ich nicht; Chris hat genau die Punkte angesprochen, die mir beim Durchlesen auch aufgefallen sind.

          Latürnich.

          Warum greifst du nicht in dem Moment, in dem du den Fehler feststellst, direkt auf $_SERVER['QUERY_STRING'] zu, oder sogar $_SERVER['REQUEST_URI'], wo genau das drinstehen müsste, was zum Fehler geführt hat?

          Schön wärs. Hast Du das schonmal mit meinem obiugen Beispiel ausprobiert?

          Also

          1. skript.php?ID=56 aufrufen soll ok sein

          2. Der User ändert die URL in skript.php?ID=blabla und ruft diese auf. Das soll der Fehler ergeben.

          Na, was steht wohl dann in $_SERVER['REQUEST_URI']??

          Rico

          1. Hallo,

            Warum greifst du nicht in dem Moment, in dem du den Fehler feststellst, direkt auf $_SERVER['QUERY_STRING'] zu, oder sogar $_SERVER['REQUEST_URI'], wo genau das drinstehen müsste, was zum Fehler geführt hat?
            Schön wärs. Hast Du das schonmal mit meinem obiugen Beispiel ausprobiert?

            mit welchem Beispiel? Du hast keins angegeben.

            1. skript.php?ID=56 aufrufen soll ok sein
            2. Der User ändert die URL in skript.php?ID=blabla und ruft diese auf. Das soll der Fehler ergeben.

            Okay, kann ich gedanklich nachvollziehen.

            Na, was steht wohl dann in $_SERVER['REQUEST_URI']??

            Na selbstverständlich /skript.php?ID=blabla, was sonst? Also genau die URL, die den Fehler bewirkt. Das wolltest du doch wissen. Die zuvor angezeigte Seite /skript.php?ID=56 hat ja mit dem aufgetretenen Fehler nichts zu tun.

            So long,
             Martin

            --
            Vielseitigkeit: Von vielen Dingen keine Ahnung haben.
            1. mit welchem Beispiel? Du hast keins angegeben.

              doch.

              1. skript.php?ID=56 aufrufen soll ok sein
              2. Der User ändert die URL in skript.php?ID=blabla und ruft diese auf.

              Na, was steht wohl dann in $_SERVER['REQUEST_URI']??

              Na selbstverständlich /skript.php?ID=blabla, was sonst? Also genau die URL, die den Fehler bewirkt.

              Denkste. Es steht skript.php?ID=56 drin. Naja, ansonsten würd ich aber auch gar nicht nachfragen, oder? ;-)

              Tu, Rico

              1. Hi,

                mit welchem Beispiel? Du hast keins angegeben.
                doch.

                dann hast du es sehr gut versteckt - ich finde es auch nach erneuter Durchsicht des Threads nicht.

                1. skript.php?ID=56 aufrufen soll ok sein
                2. Der User ändert die URL in skript.php?ID=blabla und ruft diese auf.
                  Na, was steht wohl dann in $_SERVER['REQUEST_URI']??
                  Na selbstverständlich /skript.php?ID=blabla, was sonst? Also genau die URL, die den Fehler bewirkt.
                  Denkste. Es steht skript.php?ID=56 drin.

                Dann verschweigst du uns was - und das ist erst recht ein Anlass, uns das zu zeigen, was du uns bisher vorenthalten hast. Nämlich ein funktionsfähiges Beispiel, an dem man das Fehlverhalten nachvollziehen kann.

                So long,
                 Martin

                --
                F: Was ist ekliger als ein angebissener Apfel mit einem Wurm drin?
                A: Ein angebissener Apfel mit einem halben Wurm.
              2. Hi,

                1. skript.php?ID=56 aufrufen soll ok sein
                2. Der User ändert die URL in skript.php?ID=blabla und ruft diese auf.

                Na, was steht wohl dann in $_SERVER['REQUEST_URI']??

                Denkste. Es steht skript.php?ID=56 drin.

                Direkt in diesem Eintrag im $_SERVER-Array?
                Das ist so gut wie unmöglich (so lange du nicht selber im Script an den Einträgen manipulierst, schliesslich ist $_SERVER auch beschreibbar.)

                Ich vermute eher, dass dein „Zwischenspeichern“ in der Session dir einen Streich spielt.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]