Zum Inhalt springen

PHP: Parameterübergabe in Link codieren


Aiun

Empfohlene Beiträge

hu,

häufig werden in Links die Fremdschlüssel im Klartext eingefügt, &user=1, &postid=10 blubbla

Nun zwei überlegungen:

die ID steht ja immer für einen Datensatz, normalerweise angegeben durch den namen $postid=10, gibt es eine "sinnvolle" möglichkeit, das zu verschlüsseln, so das es nicht mehr "klartext" ist ?

ich dachte an base64_encode, was haltet ihr davon ?!

2. Will ich übermitteln, "was" ich übergebe, also einen "Post" aus dem Modul "Forum", $param[]= serialized(array("Forum.Post",10))

oder so.... ?! problem ist hier die länge des GET....

Link zu diesem Kommentar
Auf anderen Seiten teilen

alles, was nicht GET sein darf/soll, muss POST oder COOKIE sein. POST darf im gegesatz zu GET auch (beinahe) unbegrenzt gross sein.

deine anforderung zu verschlüsseln, ist eher eine codierung - ich frage mich nur, wozu du z.b. die nummer eines $post oder eine $userid überhaupt unkenntlich machen willst.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

häufig werden in Links die Fremdschlüssel im Klartext eingefügt, &user=1, &postid=10 blubbla

[...]gibt es eine "sinnvolle" möglichkeit, das zu verschlüsseln, so das es nicht mehr "klartext" ist ?

ich dachte an base64_encode, was haltet ihr davon ?!

Gar nichts.

Grundsätzlich gilt ja: "Sicher ist es wenn es keiner kann, nicht wenn es keiner weiß."

Was du willst ist ja, dass keiner weiß wie da evtl. Schlüssel o.ä. sind. Wenn du dich darauf verlässt, dann ist die Chance dass du eine andere Lücke übersiehst viel größer.

Mach dein Ding so, dass egal welchen Schlüssel jemand kennt, er damit nichts anfangen kann.

base64 ist ja keine Verschlüsselung, sondern einfach ein Kodieren. Das bringt gar nichts, denn aus X wird immer Y und ein Dekodieren ist auch ohne Probleme für jeden Möglich (der es will).

So spontan würde mir einfallen, dass du bei der Ausgabe der Links eine Funktionalität einbaust, dass du die ID in eine Tabelle schreibst und dazu eine zufällige Pseudo-ID. Umgekehrt rufst du dann über die Pseudo-ID die richtige ID ab. Das ganz könntest du noch binden an eine IP-Adresse und einen Zeitraum usw.

Aber ob das wirklich sinnvoll ist...

2. Will ich übermitteln, "was" ich übergebe, also einen "Post" aus dem Modul "Forum", $param[]= serialized(array("Forum.Post",10))

oder so.... ?! problem ist hier die länge des GET....

Der GET ist AFAIK auf 1KB beschränkt, also 1024 Zeichen.

Das könntest du auch kürzen, indem du intern eine Tabelle mit den verschiedenen Modi hast:


ID   Modus

10   Forum.Post

20   Wiki.Post

30   Blog.Post

...

und als Parameter hängst du dann &mode=10 an z.b.

Damit sparst du Zeichen im GET, aber hast halt den Aufwand mit der DB und der Wartung etc.

EDIT:

Ich hab mir das hier grade mal angesehen, was da so gesendet wird wenn ich den Eintrag abschicke...

Da wird neben der NAchricht noch z.B. ein posthash mitgesendet, dann eine loggedinuser-Nummer und eine poststarttime. Denke dass dass ähnlich wie oben gesagt dann intern erstmal alles geprüft wird, bevor die eintragungen gemacht werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

naja, es geht jetzt nicht um perfekte sicherheit, nur um "sicherer"

Die Übergabe des Entität-Namens würde mir erlauben eine Automatische prüfung und Konvertierung zum Objekt zu machen, bevor die eigentliche verarbeitungslogik ans Werk geht.

Fakt ist, das es ein vielfaches an Aufwand ist, einen String in dem der schlüssel enthalten ist zu dekodieren, als ihn einfach per Hand zu ändern ^^

aber danke für die Antworten, vielleicht greife ich das später nochmal auf.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...