theiNaD

Einfache CSRF Sicherung

Um ein Formular sicherer zu machen gegen Angriffe von Bots, kann man eine sogenannte CSRF Protection einbauen. Diese verhindert, dass direkte POST Requests gesendet werden können. Zuerst muss das Formular aufgerufen werden, für welches ein Hash und ein weiterer Hash als Name für das Feld generiert wird. Diese werden in einer Session gespeichert und bei einem POST Request überprüft.

Hier ein Beispiel für die Funktion zur Generierung von dem CSRF Feld und zur Überprüfung.

Und ein Beispiel, wie man es später dann nutzen kann.

Kategorien: PHP, Tipps & Tricks

Wilhelm.tel startet Drosselkom-Offensive » « Frohes Fest

2 Kommentarer

  1. Aber was, wenn das Bot Script einfach nach dem hidden Feld sucht (steht ja dann immer an der gleichen stelle im Formular) und dann den hash ausliest?
    Vielleicht könnte man die Sicherheit verbessern, indem man mehrere Hidden felder generiert bei welchem immer nur einer (wird per random im erstellungs Script gewählt) gültig ist.

    • iNaD

      23. Februar 2013 — 15:46

      Wie schon im Artikel geschrieben verhindert dies nur direkte Post aufrufe. Dies ist eine erste Stufe, um simple Bots abzuhalten. Die guten kann man nicht mal mit einem Captcha aufhalten. Deshalb geht es viel mehr darum die nicht so guten aufzuhalten. Diese führen meist direkte Post requests aus und füllen nicht ein Formular aus.

Kommentar verfassen

Copyright © 2017 theiNaD

Design von Anders NorenHoch ↑