Moin
Übergebe ich die Variablen jedoch per URL Anhang, kann dieser ohne weiteres manipuliert werden.
Das ist auch mit hiddenfeldern problemlos möglich.
Deine Alternativen:
1. (bevorzugt) baue deine Applikation so, dass ein Verändern der Parameter keine (schädlichen) Konsequenzen hat. Merke: _Alles_ was du dem User übergibst und dieser zurücksendet kann er problemlos manipulieren.
2. Wenn du sowieso schon Sessions verwendest, speichere die vom User im Moment möglicherweise ausführbaren Aktionen in der Session und validiere das beim nächsten Seitenaufruf. Evt. willst du auch jeder Aktion einen (zufälligen) String zuordnen, diese Zuordnung zusammen mit den zur Aktion gehörigen Parametern in der Session speichern und dann in den Links nur noch diesen Aktionsstring anhängen. Beispiel skript.php?aktion=lkdsa3yl2hv, wobei dein Skript dann mit Hilfe der Session weiss, dass es bei lkdsa3yl2hv in $aktion das machen soll, was es sonst bei $ordner_id = 1 gemacht hat.
3. (Alternative ohne Sessions, nur der Vollständigkeit halber) Sende zusätzlich zu den Parameter noch eine Checksumme über die Parameter und einen geheimen String. Beispiel: Definiere bei dir im Skript irgendwo einen String $geheimnis, belege ihn mit einem geheimen, zufälligen Wert und sieh zu dass der User den String nicht manipulieren oder einsehen kann. Dann verkette alle Parameter die der User übergeben darf zusammen mit dem $geheimnis und mach ein MD5() drauf. Hänge diese Checksumme an den Link an, z.B für ($geheimnis = "hallo;"; hash=md5($geheimnis."ordner_id=".$ordner_id); ) wäre das skript.php?ordner_id=1&hash=cbd1ab45354ad9e7129efc8c66ad7c70. Wenn dein Skript aufgerufen wird, macht es die selbe Aktion wieder - md5($geheimnis."ordner_id=".$ordner_id) - und schaut nach ob da das gleiche Ergebnis rauskommt wie im $hash steht. (Merkt man eigentlich dass ich MD5 mag? :)
--
Henryk Plötz
Grüße aus Berlin