tysk: Variablen in URL

Hallo,

ich hätte gerne gewusst, wie es möglich ist, die Änderung einer Variablenübergabe wie z.B. id=9 im Beispiel www.testserver.de/index.php?id=9 zu sperren, d.h. ich möchte nicht, dass etwas angezeigt werden könnte, wenn man manuell eintippt: www.testserver.de/index.php?id=3

Dank und Gruss,
tysk

  1. Hallo,

    eigentlich nein, ich würde auf eine serverseite rechteverwaltung ausweichen.

    Bert

  2. Hello,

    ich hätte gerne gewusst, wie es möglich ist, die Änderung einer Variablenübergabe wie z.B. id=9 im Beispiel www.testserver.de/index.php?id=9 zu sperren, d.h. ich möchte nicht, dass etwas angezeigt werden könnte, wenn man manuell eintippt: www.testserver.de/index.php?id=3

    Da die Paramter offen (GET) übergeben werden, kann jeder eintippen, was er will. Selbst wenn diese verdeckt (POST) übergeben würden, wüssten immer noch eine Menge Leute, wie man Formulare manipuliert. Nun  uss man überlegen, woher die "id=9" kommt. Man könnte stattdessen schreiben, "id=A7ZfG13_23KLoP" Dieser String ergibt dann irgendwie einen gültigen Zugriff. Und wenn Du bei 64 gültigen Zeichen auch nur fünf Stellen für die Codierung spendierst, ist die Trefferwahrscheinlichkeit 1:1.073.741.824 Bei 1000 Requests pro Sekunde, die man mit einem gut eingestellten Apache über die üblichen Netze locker schaffen kann, wären dann immer noch 1.073.741,8 Sekunden == 17.896 Minuten == 298,3 Stunden nötig, um einen Treffer zu landen. Statistisch müsste man dann wohl maximal die halbe Zeit ansetzen, es ja auch wieder unwahrscheinlich ist, dass der Faker GENAU von der falschen Seite her anfängt. Da soviele Zugriffe auf eine Seite von einer IP aber selbst bei großen Proxynetzen unwahrscheinlich sind, kann Deine Alarmlampe also rechtzeitig angehen und Du kannst Maßnahmen ergreifen.

    Außerdem könntest Du den Schlüssel auch auf sechs Stellen à 64 Möglichkeiten erhöhen, das würde Dir ja eine "Vervierundsechzigfachung" der "Sicherheit" einräumen.

    Dieses Verfahren schützt Dich aber nicht davor, dass einmal benutzte Schlüssel dem User dann doch bekannt sind und somit ihren Sicherheitswert verloren haben, wenn sie denn nicht geändert werden.

    Noch etwas zum Schlüssel udn zur Wahrscheinlichkeit:
    Der Einfachheit halber, habe ich ID und zugehörigen Schlüssel als

    ID_KEY   =>   A7ZfG13_23KLoP

    dargestellt, wobei ja der Unterstrich und der Bindestrich neben den kleinen + großen Buchsteben und den Ziffern ganz normale Zeichen sind. Du kannst den Schlüssel und die ID auch Würfeln. Dein Programm muss dann nur wissen, an welchen Stellen sich der Schlüssel versteckt. Das verringert die Trefferwahrscheinlichkeit aber nur insofern, dass dann der gesamte Bereich durchgeprüft werden muss, um einen Treffer zu erzielen. Im Endeffekt kommt es also zu einer Trefferwahrscheinlichkeit von
       2 * Anzahl Datensätze
       ---------------------
       Gesamtschlüsselvorrat

    Die Datensatznummern sollten dann aber breit gestreut vorliegen (also random unique key).

    Ich hoffe, meine Betrachtung war nicht allzu falsch (zumindest was die Statistik betrifft) und hat Dir genügend Anregungen gegeben.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau