• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[DISKUSSION] CSRF Schutz für (PHP) Web-Anwendungen

R

rico2009

Guest
Hi,

mal eine kleine Umfrage: Für wie wichtig erachtet ihr den Schutz vor CSRF (Cross-Site-Request-Forgery) für (PHP) Web-Anwendungen? Habt ihr Schutzmechanismen in eure Projekten eingebaut?

Ich bin da vor kurzem drauf gestoßen und finde es sehr wichtig, sich vor solchen Angriffen auch abzusichern.


Gruß
 
Ich bin da vor kurzem drauf gestoßen und finde es sehr wichtig, sich vor solchen Angriffen auch abzusichern.

Finde ich auch. Es genügt ja schon sowas wie
HTML:
<iframe width="0″ height="0″ src="http://irgendein-soziales-netzwerk.tld/send-message.php?&nachricht=Spam"></iframe>
, dass ein Hacker auf seiner Website einbindet, um User abzumelden, Nachrichten zu verschicken oder in Online-Games Geld zu transferieren.
Und wenn dann die betreffende Website nicht dagegen geschützt ist, passiert das alles, ohne dass der User davon was mitkriegt...
 
Also ich täte
-die Eingabe mit htmlentities bereinigen
-immer $_POST statt GET verwenden
-Sessions zur Überprüfung von Logout/Passwort ändern/usw. einsetzen
-ein Input mit einem speziellen Hash/etc. mitsenden
 
-immer $_POST statt GET verwenden
Das würde ich nicht machen. Ab und zu sind GET einfach einfacher und sinnvoller als POST Requests. Und GET Requests kann man auch entsprechend absichern. Klar, durch Post kann man schonmal einiges absichern, aber auch nicht alles...
 
aus dem grund werden bei mir kein javascript-tags (<script...) in der db gespeichert, iframes sind auch verboten, session-ids werden prinzipiell nicht über die url mitgegeben...

nur post is auch doof, wenn man bspw. eine pagination hat und die ausgabe der datenanzahl von dieser abhängig ist ^^
 
Ich verwende für jede <form> die Änderungen an Daten durchführt einen sessiongebundenen Einmaltoken, also Thema hidden Feld und es gibt keine unendlich langen Sessions und die Authentifizierung wird sowohl über Cookie als auch Request Felder durchgeführt. Mehr wüsste ich nicht wirkungsvoll zu tun.
 
So habe ich das jetzt auch bei mir umgesetzt. Ich habe für alle Forms ein Einmal-Token und einen Einmal-Key, welchen in beim Abschicken prüfe.

Thema "Unendlich lange Session": Ich habe bei mir für "session.gc_maxlifetime" eine Zeit von 1 Std. eingestellt. Dass sollte auch nochmal ein wenig mehr Sicherheit geben.
 
Zurück
Oben