Sven Rautenberg: POST sicherer als GET?

Beitrag lesen

Moin!

Mal angenommen, ich habe eine Abstimmung... in einem Formular macht man gewisse Angaben, welche dann über POST übermittelt werden. Anschliessend wird ein Cookie gesetzt, dass Mehrfach-Abstimmung verhindert.

Ich nehme grundsätzlich keine Cookies an - ich kann also mehrfach abstimmen... Von "verhindern" würde ich also nicht sprechen. Und wer rausfindet, was das Cookie macht, und es löscht, kann auch wieder abstimmen.

Hat man nun die Übermittlung per GET, dann steht doch in der Adresszeile, welche Note man gewählt hat... man könnte theoretisch die Zeile manipulieren und einfach einen Wert über 6 angeben, um den Schnitt anzuheben. (Nachdem man das Cookie für Mehrfach-Abstimmung gelöscht hat, natürlich)

Wenn dein Abstimmungsskript so doof ist, Werte außerhalb des erlaubten Bereichs zu verwenden, und nicht mit oder ohne Fehlermeldung zu verwerfen, dann bist du Schuld, nicht GET.

Sogesehen ist POST doch sicherer oder nicht? Weil dort keine Manipulationen möglich sind?

Man kann sich auch ein POST-Formular basteln, dessen Action auf dein Auswerteskript zeigt, und dann beliebige Fantasiewerte eintragen. Solange dein Skript nicht prüft, was da überhaupt ankommt, kann von Sicherheit absolut keine Rede sein!

Dir muß eines klar sein: Daten vom Benutzer sind böse[tm]! Der Benutzer kann beliebige Daten senden, um Schaden anzurichten. Deine Formulare und festen URL-Parameter sind absolut kein Schutz vor bösen Daten - deine Skripte müssen dafür sorgen, dass sie nur erlaubte Werte weiterverarbeiten und definierte Aktionen ausführen. Erst dann ist etwas "sicher" - und die Methode GET oder POST ist vollkommen egal dafür.

- Sven Rautenberg