Ich hatte ja letztes Jahr schon was zum Thema geschrieben, im Zuge des letzten Updates habe ich es dann auch eingebaut, und seitdem keine (0) Spam-Kommentare mehr: das "erweiterte" Captcha.
Was habe ich gemacht? Ganz einfach, an Stelle von Zahlen Wörter in deutscher Sprache verwendet. Also nicht mehr "3 + 14 = ?" abgefragt, sondern "Addiere Drei und Vierzehn" ausgegeben. Das sorgt dafür, dass all die chinesischen Studenten Spammer augenscheinlich nichts damit anfangen können - und sich dann zumindest auch bei der Irrelevanz meines Blogs auch keine weitere Mühe mehr geben.
Die Umsetzung ist relativ einfach, da es wohl keinen "Zahl-zu-deutschem-Zahlwort"-Konverter gibt nehme ich einfach ein Dictionary, begrenze die möglichen Werte und lege für diese dann die deutschen Bezeichnungen ab:
Dictionary<int, string> numbers = new Dictionary<int, string>();
numbers.Add(0, "Null");
numbers.Add(1, "Eins");
numbers.Add(2, "Zwei");
Anbei das Ganze als ausführbares Visual-Studio-Web-Projekt zum Probieren oder Selbsteinbau (macht sich bei jeder Art von Formularen gut, mein Kontaktformular bekommt es auch gleich verpasst).
Downloads