Herkunft von $HTTP_POST_VARS sicher prüfbar ?

Hallo zusammen es geht darun, das ich gerade ein Tool um ein Feaure erweiter, in dem nur über die Beschaffenheit, der HTML-Formularelemente, updates, Inserts oder Deletes durchführen kann.

Tja, ich will aber dass nicht jeder mit einer Serverfremden-Seite, quasi von ausen, mein Script mit geposteten Werten speist und steuert.

Natürlich ich muss mit einer SessionID arbeiten, aber auch das kann umgangen werden, denn:

Der Anwender kann das gültige Formular aufrufen und generieren lassen und dann die SessionID einfach aus dem Hideen-Feld rauskopieren und in seinem falschen selbsgebastelten Formular verwenden.

Das bringt also nicht viel.
Eventuell mit $HTTP_REFERER. Aber is das sicher ?
Oder kann das auch manipuliert verschickt werden.

Das kommt der Server doch vom Browser… na und wenn der Browser Marke Eigenbau ist habe ich wieder keine sichere Lösung - oder ?

Ich denke Ihr seht jetzt wo mein Problem ist.

Eine Idee ?

Danke, Sebastian

Hallo!

Das bringt also nicht viel.
Eventuell mit $HTTP_REFERER. Aber is das sicher ?
Oder kann das auch manipuliert verschickt werden.

Ja, kann manipuliert werden (z.B. nächster Punkt)

Das kommt der Server doch vom Browser… na und wenn der
Browser Marke Eigenbau ist habe ich wieder keine sichere
Lösung - oder ?

Richtig

Eine Idee ?

Wenn du die Seite erzeugst, kannst du von den erzeugten Elementen mit einer (oder mehreren) Hashfunktionen (z.b. sha1, md5) einen Hashwert erzeugen und diesen in der Session ablegen.
Wenn das Formular zurückkommt, dann kannst du von den zurückgekommenen Elementen wieder mit der gleichen Hashfunktion einen Hashwert erzeugen. Wenn beide Werte gleich sind, dann wurde nichts verändert.

Sollte funktionieren, falls ich keinen Denkfehler gemacht habe :wink:

Grüße!

Wenn du die Seite erzeugst, kannst du von den erzeugten
Elementen mit einer (oder mehreren) Hashfunktionen (z.b. sha1,
md5) einen Hashwert erzeugen und diesen in der Session
ablegen.
Wenn das Formular zurückkommt, dann kannst du von den
zurückgekommenen Elementen wieder mit der gleichen
Hashfunktion einen Hashwert erzeugen. Wenn beide Werte gleich
sind, dann wurde nichts verändert.

Sollte funktionieren, falls ich keinen Denkfehler gemacht habe
:wink:

ich denke du hast einen denkfehler gemacht. weil: den hash kannst du nur am server bilden, auf die felder, die du rausschickst. der client muss aber felder veraendern - sonst brauchte ich kein form zu uebertragen. ergo entweder du wendest den has auf felder an, die du nicht brauchst, oder dein hashs stimmt nie.

Hi!

ich denke du hast einen denkfehler gemacht. weil: den hash
kannst du nur am server bilden, auf die felder, die du
rausschickst. der client muss aber felder veraendern - sonst
brauchte ich kein form zu uebertragen. ergo entweder du
wendest den has auf felder an, die du nicht brauchst, oder
dein hashs stimmt nie.

Ich habe das anders verstanden

Hallo zusammen es geht darun, das ich gerade ein Tool um ein Feaure
erweiter, in dem nur über die Beschaffenheit, der
HTML-Formularelemente, updates, Inserts oder Deletes durchführen kann.

Meiner Meinung nach geht es um die Elemente, nicht um die Inhalte.

Hallo zusammen es geht darun, das ich gerade ein Tool um ein Feaure
erweiter, in dem nur über die Beschaffenheit, der
HTML-Formularelemente, updates, Inserts oder Deletes durchführen kann.

Meiner Meinung nach geht es um die Elemente, nicht um die
Inhalte.

hmm ok, wenn man es so betrachtet…

aber dass hiesse ja, dass er sich davor schuetzen will, dass jemand zusaetzlich zu foo=blubber noch ein bar=asdf uebertraegt - aber damit der fehler auftreten kann, muss er ja alles, was gepostet wird unbesehen in die datenbank hacken… sääähr mysterioes…

Hallo !

Hallo zusammen es geht darun, das ich gerade ein Tool um ein
Feaure erweiter, in dem nur über die Beschaffenheit, der
HTML-Formularelemente, updates, Inserts oder Deletes
durchführen kann.

Tja, ich will aber dass nicht jeder mit einer
Serverfremden-Seite, quasi von ausen, mein Script mit
geposteten Werten speist und steuert.

Es gibt nur eine sichere Lösung: Speichere alle zulässigen Aktionen / Eingaben beim Generieren des Formulars in einer Session-Variable und prüfe nach dem Absenden jede Benutzereingabe, ob diese zulässig ist.
Mit Hilfe eines Zufallswertes, welchen du beim Generieren des Formulars erzeugst, in der Session & in einem hidden-Feld speicherst, und nach dem ersten „Empfang“ des Formulars in der Session verwirfst kannst du so auch doppeltes Senden erkennen.

Alexander

Hallöchen auch :smile:

Tja, eine passende, aber leider etwas performance fressende Lösung, wäre das Original - Dokument, vom eigenen Server zu lesen, zu parsen, nach den Formularelementen (Name, Typ) und dann damit später zu prüfen.
Naja, immerhin eine Möglichkeit, wenn auch nicht die erhoffte Schokoladentorte, aber Wunder gibts eben ja eben nur in der TV-Werbung :wink:

Danke Euch war mal interessant zu hören, was für Varianten es gibt.
Vielleicht fällt jemand, ja noch etwas ein.

Grüßles Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]