Teaser: URL-Anhang zum Übergabezeitpunkt fixieren

Hi,

muss ich das manuell machen oder gibt es eine Funktion oder ähnliches, was mir dabei helfen kann?

Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können mir ein Umbau auf komplettes mod_rewrite zu viel Arbeit ist.

Deshalb möchte ich den kompletten Anhang beim Klick auf den Link in eine Session oder als db-Eintrag fixieren und im neuen Script dann vergleichen. Kennt die Session oder der db-Eintrag den Link nicht, gebe ich dann eine Fehlermeldung aus.

Teaser

  1. Hi,

    Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können

    Das kannst du nicht.

    Deshalb möchte ich den kompletten Anhang beim Klick auf den Link in eine Session oder als db-Eintrag fixieren und im neuen Script dann vergleichen.

    Wozu?
    Was hoffst du damit zu erreichen?

    MfG ChrisB

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

      Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können

      Das kannst du nicht.

      Aber ich kann ihnen den Spaß daran nehmen ;-)

      Deshalb möchte ich den kompletten Anhang beim Klick auf den Link in eine Session oder als db-Eintrag fixieren und im neuen Script dann vergleichen.

      Wozu?
      Was hoffst du damit zu erreichen?

      s.o.

      Und der 2. Grund ist, dass ich ohnehin jeden Klick logge. Leider gehen mir bei $_SERVER['QUERY_STRING'] immer wieder Parameter verloren. Keine Ahnung, warum dass so ist.

      Deshalb nochmal die Frage: Kann ich beim Klick selber den Inhalt des Geklickten in eine Variable packen, bzw. gibt es eine solche Funktion bereits?

      Grüße

      1. Hi,

        deine Antworten auf die Rückfragen bringen kaum mehr Licht ins Dunkel, wozu das ganze gut sein soll.

        Und der 2. Grund ist, dass ich ohnehin jeden Klick logge. Leider gehen mir bei $_SERVER['QUERY_STRING'] immer wieder Parameter verloren. Keine Ahnung, warum dass so ist.

        Wenn das dein eigentliches Problem ist, dann solltest du das vielleicht mal untersuchen.

        Deshalb nochmal die Frage: Kann ich beim Klick selber den Inhalt des Geklickten in eine Variable packen, bzw. gibt es eine solche Funktion bereits?

        Was bitte soll "der Inhalt des Geklickten" denn sein?

        Bitte drücke dich mal präziser aus.

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Wenn das dein eigentliches Problem ist, dann solltest du das vielleicht mal untersuchen.

          Dazu kommts zu selten vor.

          Aber danke für Deine tips.

  2. muss ich das manuell machen oder gibt es eine Funktion oder ähnliches, was mir dabei helfen kann?

    Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können mir ein Umbau auf komplettes mod_rewrite zu viel Arbeit ist.

    Das Maximum des Machbaren ist, einen unvorhersehbaren Hash statt einen sichtbaren (und dadurch berechenbaren) Wert im QS zu verwenden.
    Nebenwirkungen sind ein beträchtlicher Mehraufwand auf der Serverseite.

    Das macht aber in der Regel keinen Sinn, ausser bei IDs irgendwelcher Art.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Das Maximum des Machbaren ist, einen unvorhersehbaren Hash statt einen sichtbaren (und dadurch berechenbaren) Wert im QS zu verwenden.

      Genau darum geht es mir.
      Wäre eben schön, wenn es da etwas vorbereitetes gegeben hätte. Aber dann mach ich es innerhalb der Funktion.

      Nebenwirkungen sind ein beträchtlicher Mehraufwand auf der Serverseite.

      Beträchtlich=relativ.
      Es geht um eine Seite mit ca. 1Mio. Klicks pro Jahr. Sollte also verschmerzbar sein. oder?

      Grüße, Teaser

      1. Genau darum geht es mir.
        Wäre eben schön, wenn es da etwas vorbereitetes gegeben hätte. Aber dann mach ich es innerhalb der Funktion.

        Php: sha1() zum Beispiel.

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Php: sha1() zum Beispiel.

          Nein, meine Frage geht um etwas anderes. Nach der Übergabe (von Klick zu Script) steht der QS in $_SERVER['QUERY_STRING']. Da kommt er aber auch hinein, wenn der User manuell die Adresszeile ändert.

          Das würde ich dem QS gerne anmerken. Ich will aber nicht die Einzelparameter durch Hashs ersetzen. Den kompletten QS gerne, aber nicht die Parameter selber. Dazu müsste aber z.B. sha1() rückrechenbar sein. Oder ich gebe dem QS nur eine Prüfziffer mit. Die müsste ich aber auch zuvor in eine db eintragen und abrufen können.

          Wie bekomme ich also den Link in die db und zwar in einer Weise, die der User nicht imitieren kann?

          Gruß, Teaser

          1. Wie bekomme ich also den Link in die db und zwar in einer Weise, die der User nicht imitieren kann?

            Gar nicht. Du kannst zwar versuchen, den Inhalt eines Formulars oder von Sonswas zu verschlüsseln und auf der Gegenseite entschlüsseln. Aber das hindert einen User nicht daran, deiner Verschlüsselung einen manipulierten Inhalt zu übergeben.

            Konzentriere dich eher auf die Frage, was ein ungültiger Request auf deinem Server anrichten kann und behebe das Problem dort.

            So langsam glaube ich, die Tatsachen beginnen dir deinen Spass zu verderben.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Gar nicht. Du kannst zwar versuchen, den Inhalt eines Formulars oder von Sonswas zu verschlüsseln und auf der Gegenseite entschlüsseln. Aber das hindert einen User nicht daran, deiner Verschlüsselung einen manipulierten Inhalt zu übergeben.

              Wie sollte er das tun?
              Zudem, es geht viel weniger um das Verschlüsseln als viel mehr darum, Parameter nicht ganz so offensichtlich weiter zu geben. Ein Grund für viele, mod_rewrite einzusetzen.

              Konzentriere dich eher auf die Frage, was ein ungültiger Request auf deinem Server anrichten kann und behebe das Problem dort.

              Alles schon lang und längst gemacht. Da brennt auch nichts an.

              So langsam glaube ich, die Tatsachen beginnen dir deinen Spass zu verderben.

              Ist doch noch alles längst nicht ausgereizt. Ich bräuchte doch nur, ob clear oder nicht, den Link über eine funktion aufzurufen, in die db eintragen und auf "Gegenseite" das Vorhandenseins des Linkeintrags gegenzuprüfen. Jeder über die Adresszeile eingefügte Link läuft doch spätestens hier gegen die Wand. Oder habe ich etwas übersehen?

              Grüße, Teaser

              1. Ist doch noch alles längst nicht ausgereizt. Ich bräuchte doch nur, ob clear oder nicht, den Link über eine funktion aufzurufen, in die db eintragen und auf "Gegenseite" das Vorhandenseins des Linkeintrags gegenzuprüfen. Jeder über die Adresszeile eingefügte Link läuft doch spätestens hier gegen die Wand. Oder habe ich etwas übersehen?

                Wenn du auf dem Server alles richtig gemacht hast, kann es dir scheissegal sein, ob irgendetwas mit deiner GUI anders umgeht, oder sie gar gänzlich umgeht.

                Klär mich auf, warum du überhaupt am falschen Ort investieren willst.

                mfg Beat

                --
                ><o(((°>           ><o(((°>
                   <°)))o><                     ><o(((°>o
                Der Valigator leibt diese Fische
                1. Klär mich auf, warum du überhaupt am falschen Ort investieren willst.

                  Ich lerne und habe gerade nichts besseres zu tun? ;-)

                  Aber ich fahre auch ab und zu Landstrasse, obwohl über BAB schneller wäre... ;-)

                  Zurück zum Thema? Würde mich freuen :-)

                  1. Hi,

                    Klär mich auf, warum du überhaupt am falschen Ort investieren willst.

                    Ich lerne und habe gerade nichts besseres zu tun? ;-)

                    Gut, dann lerne bitte:

                    Lass' es, es hat keinerlei praktischen Nutzen.

                    MfG ChrisB

                    --
                    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                    1. Gut, dann lerne bitte:

                      1. Keine Arroganz!

                      Lass' es, es hat keinerlei praktischen Nutzen.

                      2. Lötzinn! Keiner ist unfehlbar. Insofern ist eine URL, die keine Parameterdetails preisgibt im Sinne der Sicherheit immer ein Vorteil!

                      MfG ChrisB

                      auch so.

                      1. Hi,

                        Gut, dann lerne bitte:

                        1. Keine Arroganz!

                        Ja, genau darum wollte ich dich mit der Aufforderung bitten.

                        Lass' es, es hat keinerlei praktischen Nutzen.

                        1. Lötzinn! Keiner ist unfehlbar. Insofern ist eine URL, die keine Parameterdetails preisgibt im Sinne der Sicherheit immer ein Vorteil!

                        Nein.

                        Dass security by obscurity nicht funktioniert, weiss jeder, der sich auch nur minimal mit der Thematik befasst.

                        MfG ChrisB

                        --
                        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                        1. Dass security by obscurity nicht funktioniert, weiss jeder, der sich auch nur minimal mit der Thematik befasst.

                          Das "Worte im Mund verdrehen" als polemisches Mittel in Diskussionen nicht funktioniert, die auch wenigstens einen minimalen Nährwert haben sollen, weiß jeder, der auch nur minimalst fair mit anderen Menschen umgehen will.

                          Wenn Du also als Grundlage des Gespräches nicht das nimmst, was ich schreibe, sondern das, was Dir beliebt, spreche ich auch nur eben Dieses oder noch besser... gar nicht. ;-)

                          In diesem Sinne, schönen Abend noch.

                          @Beat: Danke für sha1(). Konnte ich gut für meine Lösung nutzen.

                          Teaser

                          1. Hi,

                            Wenn Du also als Grundlage des Gespräches nicht das nimmst, was ich schreibe, sondern das, was Dir beliebt,

                            Ich nahm das, was du schriebst - du hast behauptet, die Sicherheit würde durch diese unsinnige Maßnahme steigen.

                            Dem ist nicht so.

                            spreche ich auch nur eben Dieses oder noch besser... gar nicht. ;-)

                            Letzteres ist wohl das beste, wenn du an einer Diskussion nicht interessiert bist, sondern lieber auf deinem Irrtum beharrst.

                            MfG ChrisB

                            --
                            “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
                            1. Ich nahm das, was du schriebst - du hast behauptet, die Sicherheit würde durch diese unsinnige Maßnahme steigen.

                              Lerne lesen, lese viel und Du wirst künftig weniger Probleme haben, Gelesenes auch zu verstehen...