PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [THEORIE] Captcha Alternativen!



Blakkeight
23.02.2007, 16:34
Zurzeit beschaeftige ich mich doll mit dem Thema Captcha Alternativen.
Da das Captcha fuer mich nicht mehr in frage kommt.

Dies ist alles nur Theorie und ich will mit euch ein bissel darueber Diskutieren. ;)

Hier mal Ideen die ich bisher zusammen Tragen konnte.

Beim Starten des Gaestebuches wird die die IP mittels md5() in ein Verstecktes Formular Feld eingetragen und beim Absenden mitgeschickt.
Bevor dann der Eintrag in die DB gemacht wird, wird eine neue IP Abfrage gestartet und ebenfalls mit md5() verschluesselt, dann werden beide mit einander Verglichen, wenn beide Uebereinstimmen wird der Eintrag gemacht, wenn nicht dann halt nicht. ;)
Das ist mein Persoenlicher Favorit. =)


Im Eingabe Formular steht ein Text mit dem Inhalt : "Bitte Schreibe die Zahl __'irgend eine zahl zwischen 0 und 9'__" aus.
Dann schreibt man halt z.B. den Text neun in das Eingabe Feld.
Eine Moeglichkeit, nicht die beste wenn ein Spam Bot das Formular Feld außen vor laesst und direkt zum Eingabe Skript kommt. =)


Mindest Laufzeit beim Beitraege Schreiben, die Zeit wird gemessen ab dem Zeit Punkt wo man auf Beitrag Schreiben geht, sollte man beim Absenden unter z.B. 30sec sein wird der Eintrag nicht genommen und geloescht/verfaellt
Gute Moeglichkeit aber auch nicht super, da einige Leute gemessen haben wie lange die Bots brauchen bis sie Posten und da kamen zwischen 4-90sec auch schon ca. 354sec bei raus.


Eine IP Sperre die jeden User nur einmal in X min Posten laesst.
Finde ich auch sehr gut aber, wenn es so ist wie bei mir Hilft es nicht ganz, da mehrere Bots mit Verschiedenen IPs Posten.


Man kann eine Art Link Sperre machen, wenn mehr als z.B. 3 Links im Eintrag vorhanden sind wird dieser geloescht oder verfaellt.
Liegt bei mir an 2ter Stelle. Imo Spricht da nichts dagegen. =)


Es werden Zufaellige <input> namen erzeugt in Sessions gespeichert, wie z.B. mail-87632, wobei mail- immer bleibt und sich nur die Zahl veraendert, die wiederum beim Eintragen in die DB verglichen wird.
So hat der Bot Probleme die Input Felder zu finden und kann nichts eintragen, der er (die meisten Bots sind so. o.O Es wird schwer einen zumachen der das Pakt =)) von den Standard namen ausgeht, wie z.B. Name, User, Email usw.


Ein Verstecktes Input Feld mit einem Aussage Kraeftigen namen wie z.B. Email oder Name.
Nach dem Absenden wird ueberprueft ob in diesem Feld was eingegeben wurde oder nicht, sollte dies der Fall steht Fest das es ein Bot ist. ;)
Auch eine gute Loesung aber wie oben schon mal erwaehnt, wenn der Bot direkt auf das Eingabe Skript setzt, richtet die Methode auch nicht mehr viel aus. ;)


So das sind die Moeglichkeiten die ich mir erarbeitet habe.
Nun wuerde ich gerne eure Verbesserungsvorschlaege und eigenen Ideen hoeren.

Gruß Jay

Lukas
23.02.2007, 17:03
Das Zeug mit IP und MD5 verstehe ich nicht wirklich, das hindert einen Bot auch nicht dran, zu spammen. Oder haben die Komponenten, die Formulare auslesen, und die, die Formulare schicken, grundsaetzlich verschiedene IPs?

Ansonsten bevorzuge ich die Varianten mit dem versteckten Input-Feld, dass dann author oder so heisst, und mit "schreibe eine Zahl/einen Buchstaben/sonstwas aus". Alternativ kann man da auch einfache Fragen stellen oder Bilder anzeigen und Fragen, was drauf ist (was natuerlich auch wieder eine Captcha-Variante ist - allerdings fuer Menschen leichter und fuer Bots schwerer zu loesen als die klassischen Buchstabenbildchen. Der Nachteil ist, dass man User von Textbrowsern aussperrt).

Blakkeight
23.02.2007, 18:15
Das Zeug mit IP und MD5 verstehe ich nicht wirklich, das hindert einen Bot auch nicht dran, zu spammen. Oder haben die Komponenten, die Formulare auslesen, und die, die Formulare schicken, grundsaetzlich verschiedene IPs?
Es gibt auch Bots die kein Formular nutzen.

Jesus_666
23.02.2007, 18:22
Beim Starten des Gaestebuches wird die die IP mittels md5() in ein Verstecktes Formular Feld eingetragen und beim Absenden mitgeschickt.
Bevor dann der Eintrag in die DB gemacht wird, wird eine neue IP Abfrage gestartet und ebenfalls mit md5() verschluesselt, dann werden beide mit einander Verglichen, wenn beide Uebereinstimmen wird der Eintrag gemacht, wenn nicht dann halt nicht.
Läßt sich in einer Minute umgehen. Der Angreifer muß sich ein mal den URI ansehen und das System ist geknackt. Abgesehen davon kann man es umgehen, indem man lediglich vor dem Posten die Übersichtsseite aufruft.


Im Eingabe Formular steht ein Text mit dem Inhalt : "Bitte Schreibe die Zahl __'irgend eine zahl zwischen 0 und 9'__" aus.
Dann schreibt man halt z.B. den Text neun in das Eingabe Feld.
Läßt sich noch wesentlich einfacher umgehen als ein Captcha.


Mindest Laufzeit beim Beitraege Schreiben, die Zeit wird gemessen ab dem Zeit Punkt wo man auf Beitrag Schreiben geht, sollte man beim Absenden unter z.B. 30sec sein wird der Eintrag nicht genommen und geloescht/verfaellt
sleep(60). Fertig.


Eine IP Sperre die jeden User nur einmal in X min Posten laesst.
Wurde von dir bereits widerlegt.


Man kann eine Art Link Sperre machen, wenn mehr als z.B. 3 Links im Eintrag vorhanden sind wird dieser geloescht oder verfaellt.
Sinnvoll, verhindert aber keine Spams mit weniger als N Links.


Es werden Zufaellige <input> namen erzeugt in Sessions gespeichert, wie z.B. mail-87632, wobei mail- immer bleibt und sich nur die Zahl veraendert, die wiederum beim Eintragen in die DB verglichen wird.
Trivial. Man ruft die Postseite auf und filtert die Zahlen raus.


Ein Verstecktes Input Feld mit einem Aussage Kraeftigen namen wie z.B. Email oder Name.
Nach dem Absenden wird ueberprueft ob in diesem Feld was eingegeben wurde oder nicht, sollte dies der Fall steht Fest das es ein Bot ist.
Sobald bekannt ist, welche Felder sinnvoll sind, ist der Schutz umgangen.


Captchas werden nicht deshalb geknackt, weil das Verfahren inhärent schwach ist, sondern weil ein Haufen schlauer Leute daran arbeiten, sie zu knacken. Das gilt auch für andere Schutzmechanismen - effektiv hast du für gewöhnlich nur security through obscurity, da du dem Besucher immer alle Informationen liefern mußt, die er zum Posten braucht.

Captchas basieren auf der Erkenntnis, daß Mustererkennung etwas ist, das Maschinen schlechter können als Menschen, ergo sind Maschinenzugriffe erschwert. Parsing und Berechnungen sind hingegen Felder, für die Computer speziell gebaut wurden. Kram wie versteckte Felder etc. ist einfach zu umgehen. Ein Mensch erkennt das Abwehrschema, die Maschine wird darauf programmiert und umgeht es.

Sein wir ehrlich - wir sind in der gleichen Situation wie Kopierschutz- oder DRM-Betreiber: Die anderen sind mehr und sie sind entschlossen. Es ist unmöglich, völlige Sicherheit zu haben.

Blakkeight
23.02.2007, 18:44
Sein wir ehrlich - wir sind in der gleichen Situation wie Kopierschutz- oder DRM-Betreiber: Die anderen sind mehr und sie sind entschlossen. Es ist unmöglich, völlige Sicherheit zu haben.
Das ich will ich damit nicht erreichen, es geht bloß darum das die Gaestebuecher alle Individuelle Schutz Mechanismen haben und es so den Bots+Entwickler erschweren ihren Spam zu lassen. Es lohnt sich nicht fuer eine kleine Seite einen Bot zu progen, wenn dann muss er massen kompatibel sein. ;) Denke Ich.

FF
23.02.2007, 19:10
ein eingabefeld a la "w as is t z w e i pl u s fu e nf" wobei zwei und fünf zufällig generiert werden, und der user eine zahl eintippen muss? und dem eingabefeld irgend einen zufallsnamen geben.
edit:
das ist ja ekliger al captchas.....


Eine Kombination von mehreren deiner Erwähnten Methoden ;)

btw, wie funktioniert eigentlich worpdress akismet?
das hat bei mir noch nie was druchgelassen \o/

NPC Fighter
23.02.2007, 19:20
btw, wie funktioniert eigentlich worpdress akismet?
das hat bei mir noch nie was druchgelassen \o/

Paha, dass ich nicht lache.
Die Kommentaransicht in meinem alten Blog ist ein Schrotthaufen.

@ Topic: Wikipedia benutzt afaik ein System, wie von Freierfall beschrieben. Würde ich persönlich den anderen von dir vorgeschlagenen Methoden vorziehen.

Antares
23.02.2007, 19:45
ein eingabefeld a la "w as is t z w e i pl u s fu e nf" wobei zwei und fünf zufällig generiert werden, und der user eine zahl eintippen muss? und dem eingabefeld irgend einen zufallsnamen geben.


Mit Bruteforce dürfte das allerdings rechts schnell umgangen sein, sofern das System verstanden ist.

Lukas
23.02.2007, 21:07
btw, wie funktioniert eigentlich worpdress akismet?
das hat bei mir noch nie was druchgelassen \o/Die meisten Anti-Spam-Plugins verwenden meines Wissens nach einen ganzen Haufen Methoden, von irgendwelchen Javascript-Berechnungen (die den Client Rechenzeit kosten) ueber "normale" Sachen wie filtern nach URLs bis hin zu Blacklists.