hotti: PHP: Wie schützt man sich vor unerwartetem $_POST im Formular

Beitrag lesen

moin,

»» mit dem Formular setzt Du einen Keks mit einem bestimmten Value (z.B. SCRIPT_NAME).
»»
»» Wird das Formular abgeschickt, kommt der Cookie mit und serverseitig kann somit geprüft werden, dass der POST auch tatsächlich von dem Formular kommt.

Das erschwert Request Forgery nur minimal. Wenn der Angreifer das heraushat, lässt er den Browser des Anwenders einfach das Formular abrufen und den Cookie abholen, bevor er ihn Daten an die zweite URI schicken lässt.

Feilich. Aber solch ein Ansatz kann ja noch gesteigert werden; z.B. kann ein Formular mit 2 unterschiedlichen Session-Keys, von denen einer per header in den Cookie gesetzt und der andere per Ajax generiert wird, dermaßen "verrammelt" werden, so dass es wirklich schwierig wird, einen POST auf den Server zu schicken, sofern dieser nicht explizit von _dem_ Formular kommt, welches da erst im Browser aufgerufen werden muss. Eine zusätzliche zeitliche Sperre zwischen dem "GET-Formular" und "POST-Data" und die Begrenzung auf "einen POST per Session" könnte schonmal einen Großteil der Spammer abwimmeln, die das automatisiert tun wollen.

Hotte

--
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.