Argumente verschlüsseln

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Argumente verschlüsseln

    Hallo zusammen,

    mich würde interessieren, ob ihr es für Folgendes für sinnvoll haltet: Ich habe z.B. in einer URL die Argumente index.php?user_id=10&action=edit&page=10. Der Link bzw. die URL dient zum Ändern eines Template in einer gruppenbasierten Anwendung.

    Ich überlege mir nun, ob ich durch eine Funktion alle Argumente zusammenfasse und verschlüssele, so dass meinetwegen nur index.php?op=3867dffdfd8746j übrig bleibt. Index.php hat dann am Anfang eine Funktion, die das Argument op wieder in user_id, action und page auflöst. Ich möchte dadurch verhindern, dass User durch einfacheres Ändern der URL-Argumente "Blödsinn" mit der Anwendung treiben.

    Ich habe keine Funktion in PHP gefunden und konnte auch keine Kommentare im Internet für so eine Vorgehensweise finden. Ich wäre für eure Kommentare sehr dankbar, insbesondere wenn sie in Richtung Sicherheit und Performace gehen.

    Danke,

    mabrin

  • #2
    Ich würde mir mal Sessions anschauen ... dann würde ich die UserID in der Session speichern ... und mir in der Session zusätzlich noch merken von welcher IP aus sie initialisiert wurde!
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Blödsinn kann man nur treiben wenn es erlaubt ist. Wenn Du ein gutes Benutzerkonzeopt hast kann der user doch versuchen Blödsinn zu betreiben...
      Beantworte nie Threads mit mehr als 15 followups...
      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

      Kommentar


      • #4
        Hallo,

        das oben angegebene Beispiel, entspricht nicht genau meiner Anwendung. Ich verwende schon Sessions, aber ich verzichte auf Cookies, d. h., die SessionID über die URL übergeben wird. Derjenige, der die SessionID und die Parameter kennt, kann somit auch Veränderungen an meiner Anwendung vornehmen. Ich möchte es aber den Usern so schwer wie möglich machen, die interne Funktionsweise der Anwendungen zu durchschauen. Deswegen möchte ich gerne weiterhin Eure Meinungen hören. Danke,

        mabrin

        Kommentar


        • #5
          du könntest es doch z.b. so machen:

          index.php?var=10;edit;10

          im script nimmst du dann die URL auseinander (explode) und hast für user, action und page deine variablen.

          der user kann dann kaum erkennne, was diese bedeuten ...
          GNU/LINUX

          Kommentar


          • #6
            Es gibt noch eine ganz billige aber idiotensichere Variante.

            Setze einfach alle Argumente zusammen in einen String und teile sie jeweils mit einem bestimmten Zeichencode, der garantiert nicht in Deinen Argumenten vorkommt voneinander ab.

            $user_id = 10;
            $page = 6;
            $modus = "edit";

            $trennen = "%38me";

            $id = $user_id.$trennen.$page.$trennen.$modus

            Jetzt hättest Du schon mal ein Argument, dass so aussieht:

            seite.php?id=10%38me6%38meedit

            Schon mal nicht so leicht da was zu erkennen.
            Aber jetzt gehst Du einfach her und codierst das ganze:

            $id = base64_encode($id);

            Du erhälst einen String, den wohl keiner entziffern kann.

            Auf der Zielseite decodierst Du dann alles wieder:

            $id = base64_decode($id); // Hebt die Verschlüsselung auf
            $code_array = explode("%38me",$id) // Zerteil den String anhand des Trennzeichen (%38me)

            Dann holst Du dir deine Variablen zurück:
            $user_id = $code_array[0];
            $page = $code_array[1];
            $modus = $code_array[2];

            Fertig!

            Um sicher zu gehen, dass keiner deinen codierten String einfach decodiert,
            kannst Du ihn auch mehrfach codieren.
            Schreib dir eine einfache Schleife, die dann z.B. 6 mal die $id mit base64_encode() codiert. Auf der gegenseite musst du dann halt 6 mal decodieren.

            Dieses decode-Script kannst Du dann z.B. in einer Include-Datei in jeder benötigten Seite einbauen. Somit musst du dann nicht alle seiten ändern, wenn Du die Codeir-Schleife dann mal von 6 auf 25 ändern willst.

            Gruß, Andi

            Kommentar


            • #7
              Das PHPBB-Forum verschlüsselt die Argumente auch
              das wäre mir neu!
              es zeigt doch varianlen wie $f (foruim) oder $p (posting) etc. in der URL ...
              GNU/LINUX

              Kommentar

              Lädt...
              X