hotti: Captchas

Beitrag lesen

hi,

Was meint Ihr, kann man das vernünftig lösen, ohne den User zu
einer Eingabe eines abgelesenen Textes oder der Beantwortung
einer Frage zu zwingen ?

Sowas habe ich auch mal umgesetzt mit Hilfe eines Cookie:

  • Das Formular muss einmal aufgerufen werden, damit der Cookie gesetzt und eine Sessin servseitig erzeugt wird,
  • der POST darf erst nach ein paar Sekunden erfolgen, CountDown per Javscript auf dem Absendebutton, damit der User das auch sieht (!), die Delay-Zeit wird außerdem zufällig erzeugt innerhalb gewisser Grenzen,
  • innerhalb einer Session (gültig auch nur in einer Browsersitzung) darf nur ein POST erfolgen.

Das Ganze ist umso wirkungsvoller, wenn in der POST-Response kein Cookie mitgegeben wird, ein Bot, der einfach nur postet, sieht somit nicht, das ein Cookie im Spiel sein muss.

Wer Cookies nicht mag, kann den SessionKey auch URL-encoded im POST-Request mitgeben, das ist jedoch leichter zu knacken (Cookies übrigens auch), das Ganze aus der Sicht des KnackerBots:

  • Sessionkey besorgen und DelayZeit in Erfahrung bringen (GET auf Formular),
  • POST mit Sessionkey nach Ablauf der DelayZeit.

Die meisten Bots, die mir so untergekommen sind, analysieren ein Formular, wenn dieses auch noch zufällig mit verschiedenen hiddenFields generiert wird, die allesamt irgendeinen wiederum zufälligen Wert haben müssen, der anhand eines SessionKeys serverseitig hinterlegt wird, ist das kaum noch zu knacken.

Viele Grüße,
Hotte