Prüfen, ob Formular von eigener Seite stammt
Siggi
- php
Hi,
ich würde gerne prüfen, ob die Inhalte, die meinem Programm gesendet werden (per POST) aus dem hiezu vorgesehenen Formular stammen.
Was bietet sich hierfür an?
Z.B. SERVER_NAME ??
Grüße, Siggi
Hi,
ich würde gerne prüfen, ob die Inhalte, die meinem Programm gesendet werden (per POST) aus dem hiezu vorgesehenen Formular stammen.
HTTP kennt kein „von“ in diesem Sinne.
Was bietet sich hierfür an?
Formuliere zunächst klar und deutlich, welches *Problem* du eigentlich lösen willst.
Z.B. SERVER_NAME ??
Nein, absolut nicht.
MfG ChrisB
ich würde gerne prüfen, ob die Inhalte, die meinem Programm gesendet werden (per POST) aus dem hiezu vorgesehenen Formular stammen.
Was bietet sich hierfür an?
Instantiiere das Formular mittels einer UniqueID.
Das gibt dir zwar keine Gewähr, dass wirklich dein Formular verwendet wurde. Aber es schliesst aus, wenn du es so implementierst, dass das gleiche Formular mehrmals verwendet werden kann.
Z.B. SERVER_NAME ??
Bitte nicht raten.
mfg Beat
Mahlzeit Siggi,
Was bietet sich hierfür an?
Nichts (siehe ChrisBs Erläuterung).
Du könntest natürlich beim Ausliefern des Formulars Server-seitig einen MD5-Hash über REMOTE_ADDR, Datum o.ä. bilden und diesen Wert in einem versteckten Eingabefeld an den Client ausliefern: wenn dann eine Anfrage an Dein verarbeitendes Skript gestellt wird, kannst Du überprüfen, ob dieser Hash enthalten ist und ob der Wert plausibel ist.
Alternativ könntest Du beim Verarbeiten der Daten auf eine gültige Session bestehen o.ä. ...
Ansätze gibt es viele, die eine gewisse relative Wahrscheinlichkeit bieten, dass die Anfrage wirklich durch Dein Formular ausgelöst wurde. Sicher sein kannst Du Dir jedoch nie.
MfG,
EKKi
Hello,
ich würde gerne prüfen, ob die Inhalte, die meinem Programm gesendet werden (per POST) aus dem hiezu vorgesehenen Formular stammen.
Was bietet sich hierfür an?
Gar nichts!
Prüfe hingegen, ob die Inhalte, die im Postrequest geliefert werden, erwünscht sind, vollständig sind und keine unerwünschten Inhalte (Parameter) geliefert werden, also plausibel sind.
Zusätzlich kannst Du noch eine Session verwenden, um den Client wiedererkennen zu können.
Da aber auch Session-IDs gefälscht werden können, hilft als letztes Mittel nur noch eine geschützte (verschlüsselte) Verbindung z.B. über HTTPS.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg