Hi leute,
ich will in den nächsten Wochen ein Video Tutorial erstellen mit dem Thema registrierung. Dabei will ich natürlich auch dass bei der Registrierung die Standard Bots geblockt werden. Nun könnte ich einfach ein CSRF Token einbauen und ein Captcha aber CSRF Token ist nicht so gut und ein Captcha ist nerfig. Also wollte ich was anderes machen und da würde mich eure Meinung interessieren, nicht dass ich da irgendwas total dämliches mache.
Also ich will eine Funktion schreiben die mir aus einem Feldnamen einen Hash generiert, das nutze ich dann wiederum als Feldname in der Form
Der Hash setzt sich zusammen aus Feldname + CSRF Token + random salt und das alles dann gehasht. Jedes Mal wenn das Formular gerendert wird, wird der Token neu generiert und die Feldnamen sind dann neu.
Somit hat auch ein Angreifer erst mal schwierigkeiten.
Danach will ich ein Feld einbauen welches immer leer sein soll. Ich gehe davon aus dass ein Standard Bot alle Felder befüllen wird. Da er aber den Namen nicht sieht, weiß er nicht ob das Feld überhaupt gebraucht wird oder nicht. Das Feld wird aber Per CSS weggeschoben, damit man hidden Felder nicht ignorieren kann.
Außerdem speichere ich in die Session ein Timestamp ab und beim Absenden gucke ich, ob mindestens 5 Sekunden vergangen sind zwischen dem Anzeigen der Form und erhalten des Post requests. Ich gehe davon aus dass ein User schon mindestens 5 Sekunden bruacht um Daten einzutippen. Außerdem wenn ein Formular mehr als 10 Mal abgesendet wurde, verdopple ich die Zeit jedes Mal. So dass der Bot nicht einfach immer nur 5 Sekunden abwarten muss und es weiter probieren kann.
Ich möchte da kein Google Captcha einbinden weil das würde ein extra Video verlangen.
Was meint ihr? Ist das so ok? Oder habe ich irgendwas vergessen bzw an irgendwas nicht richtig gedacht?
Viele Grüße
ich will in den nächsten Wochen ein Video Tutorial erstellen mit dem Thema registrierung. Dabei will ich natürlich auch dass bei der Registrierung die Standard Bots geblockt werden. Nun könnte ich einfach ein CSRF Token einbauen und ein Captcha aber CSRF Token ist nicht so gut und ein Captcha ist nerfig. Also wollte ich was anderes machen und da würde mich eure Meinung interessieren, nicht dass ich da irgendwas total dämliches mache.
Also ich will eine Funktion schreiben die mir aus einem Feldnamen einen Hash generiert, das nutze ich dann wiederum als Feldname in der Form
Der Hash setzt sich zusammen aus Feldname + CSRF Token + random salt und das alles dann gehasht. Jedes Mal wenn das Formular gerendert wird, wird der Token neu generiert und die Feldnamen sind dann neu.
Somit hat auch ein Angreifer erst mal schwierigkeiten.
Danach will ich ein Feld einbauen welches immer leer sein soll. Ich gehe davon aus dass ein Standard Bot alle Felder befüllen wird. Da er aber den Namen nicht sieht, weiß er nicht ob das Feld überhaupt gebraucht wird oder nicht. Das Feld wird aber Per CSS weggeschoben, damit man hidden Felder nicht ignorieren kann.
Außerdem speichere ich in die Session ein Timestamp ab und beim Absenden gucke ich, ob mindestens 5 Sekunden vergangen sind zwischen dem Anzeigen der Form und erhalten des Post requests. Ich gehe davon aus dass ein User schon mindestens 5 Sekunden bruacht um Daten einzutippen. Außerdem wenn ein Formular mehr als 10 Mal abgesendet wurde, verdopple ich die Zeit jedes Mal. So dass der Bot nicht einfach immer nur 5 Sekunden abwarten muss und es weiter probieren kann.
Ich möchte da kein Google Captcha einbinden weil das würde ein extra Video verlangen.
Was meint ihr? Ist das so ok? Oder habe ich irgendwas vergessen bzw an irgendwas nicht richtig gedacht?
Viele Grüße
Kommentar