Seite 2 von 3

Verfasst: 26.01.2007 16:21
von Kaeru Gaman
> Bei einem Captcha-Bild weiss der BOT allerdings sofort was er da zu
> tun hat. Egal ob er es schafft oder nicht.

genau das ist es... :D

wenn die rechenaufgabe in einem Captcha-bild steht,
werden 99.99% der bots die aufgabe eingeben, nicht die lösung,
weil sie davon ausgehen, dass sie es mit einem stinknormalen captcha zu tun haben.

da kann man dann das captcha relativ harmlos gestalten,
dass garantiert auch menschen mit sehschwächen damit klarkommen,
weil dass es eine rechenaufgabe ist, erkennt nur ein selbstdenkendes system.

Verfasst: 26.01.2007 18:33
von NicTheQuick
Und dann dauert es nicht mehr lange und die Bots haben noch eine kleine
eval()-Funktion eingebaut.

Verfasst: 26.01.2007 20:18
von ZeHa
Dann wird's eben Zeit für moralische Fragen oder Wissensfragen :mrgreen:

Verfasst: 05.02.2007 19:44
von THEEX
Natuerlich, aber kaum einer programmiert ein BOT nur fuer ein Forum.
Somit waere es, fuer solch einen BOT fast unmoeglich tausende
verschiedene Fragen oder dergleichen zu beantworten.
Genau das meinte ich auch!

Verfasst: 06.02.2007 12:53
von stbi
Hab neulich über einen Erkennungsansatz gelesen, der das Prinzip umkehrt. Es wird nicht mehr eine Leistung geprüft, die nur ein Mensch kann bzw. ein Bot nicht kann, z.B. Mustererkennung. Sondern man prüft ein Verhalten, das nur ein Bot zeigen würde.

Konkretes Beispiel: man baut in das Registrierungsformular ein weiteres Formularfeld für die E-Mailadresse ein, das man aber per CSS unsichtbar macht. Der Bot wird treu und brav alle Formularfelder ausfüllen, auch das eigentlich unsichtbare. Und schon hat man ein Merkmal, das man per Code auswerten kann ...

Verfasst: 06.02.2007 12:57
von Kaeru Gaman
:shock: geil! :allright:

Verfasst: 06.02.2007 14:04
von AND51
stbi hat geschrieben:Konkretes Beispiel: man baut in das Registrierungsformular ein weiteres Formularfeld für die E-Mailadresse ein, das man aber per CSS unsichtbar macht. Der Bot wird treu und brav alle Formularfelder ausfüllen, auch das eigentlich unsichtbare. Und schon hat man ein Merkmal, das man per Code auswerten kann ...
Gute Idee, aber dann lasse ich meinen Bot einfach in den Quelltext schauen. Sollte ich feststellen, dass das Feld unsichtbar ist:

Code: Alles auswählen

<div style="visibility:hidden;"><input type="text"></div>
Dann füelle ich es nicht aus. Auf die traditionelle Methode, die es schon sehr lange gibt, fällt auch kein Bot mehr herein, nämolich sofort ein "unsichtbares" Fehld einzubauen:

Code: Alles auswählen

<input type="hidden">
Letzteres ist dazu gedacht, dass man so eine Art unsichtbares Eingabefeld hat, in das schon Informationen vorgegeben sind, z. B. wenn das Formular über ein PHP/CGI Skript generiert wurde.

Unterschied zwischen Code 1 und 2: 1 Versteckt es nachträglich, arbeitet mit CSS wie vorgeschlagen. 2 fügt einfach nur eine Information in das Forumlar ein, die auch von einem Bot nicht geändert wird.

Deine Idee ist also gut, aber leider unbrauchbar. Man müsste den ganzen Ansatz umkehren:

Ich habe mal gelesen, dass ein Bot sich nur dann als "künstliche Intelligenz" bezeichnen darf, wenn ein Mensch (mit verbundenen Augen, nur hörend) nicht unterscheiden kann, ob sein Gesprächspartner ein Bot oder ein Mensch ist. Wie gesagt, man müsste den Ansatz zur Botbekämpfung umdrehen und bei der Registrierung etwas verlangen, was Bots nicht können, beispielsweise Ironie verstehen oder fragen, wie Chili schmeckt oder wie sich ein Teppich anfühlt. Das sind alles Sachen, an denen man sehen kann, ob das gegenüber ein Bot ist (der nicht fühlen kann) oder ein Mensch (der fühlen kann).

Verfasst: 06.02.2007 14:20
von Tafkadasom2k5
Problem bei diesem Ansatz ist aber, dass man eben keine "Standardfragen" nutzen sollte. Gleichzeitig müssen es aber allgemeingültige sein, um niemanden auszuschließen...
Das würde irgendwann in einem "Sollen hier nur noch Leute hineindürfen, die intelligent genug für die Eingangsfrage sind"-Glaubenskrieg enden.

Ich persönlich tendiere für das unsichtbare Eingabefeld, in Verbindung mit PHP. Wir generieren uns einen zufälligen Namen für unser unsichtbares DIV.Den Zufallsnamen speichern wir zwischen, und produzieren einmal ein CSS, was das DIV mit dem Zufallsnamen unsichtbar färbt. So kann man verhindern, dass sich Bots an die DIV-Namen gewöhnen (DIV Name"Invisi" -> Oh, hier darf ich nix eintragen). Indem man die Invisibility im CSS verbaut, ist auch relativ gesichert, dass die Eigenschaften nicht so leicht ausgelesen werden können.
Zusätzlich könnte man eine JavaScriptfunktion einsetzen (okay, hier werden manche schreien, da Javascript nicht überall aktiv ist, aber da man es nur einmal zur Anmeldung braucht...).Diese Javascriptfunktion macht eigentlich nur folgendes: Sie setzt in das unsichtbare Feld beim Laden des HTMLs einen Wert ein.Eine Art ID.
Da Bots i.d.R. kein Javascript unterstützen (wer will sich schon auf eine Endlosschleife einlassen, und damit den Server lahmlegen?), wird bei einem Bot keine Zahl in dem Feld sein, oder gar eine falsche.

Wie man die Zahlen korrigiert wäre ein anderes Problem, was aber in der Regel mit PHP und einer SessionID gelöst werden kann.

Was haltet ihr von dieser Kombination?

(Nochmal Kurz:
- Div mit Zufallsnamen-> CSS weißt<div name="Zufallsnamen"> unsichtbarkeit zu
- PHP setzt in JavaScript-Funktion irgendeinen Wert ein, der von der Funktion berechnet werden und in das unsichtbare Feld eingetragen werden muss
- PHP Empfängt Ergebnis des unsichtbaren DIVs und vergleicht Inhalt mit dem Inhalt der "drin sein müsste"
)

Gr33tz
Tafkadasom2k5

Verfasst: 06.02.2007 14:57
von stbi
AND51 hat geschrieben:Sollte ich feststellen, dass das Feld unsichtbar ist:

Code: Alles auswählen

<div style="visibility:hidden;"><input type="text"></div>
Dann füelle ich es nicht aus.
1. würde ich CSS-Klassennamen verwenden, die nicht unbedingt den Text hidden beinhalten
2. kann ich auch ein weißes Feld auf weißem Grund machen ( = französische Kriegsflagge :mrgreen: )
3. kann ich das Formularfeld auch außerhalb des sichtbaren Bereichs platzieren
4. kann ich das Formularfeld winzigst klein machen
5. kann ich etwas anderes darüber legen, um es unsichtbar zu machen
6. kann ich mit Javascript zusätzlich Verwirrung stiften
7. kann ich neben das Formularfeld auch einfach hinschreiben, dass es leer bleiben soll

Somit muss ein Bot die komplette HTML-Seite plus CSS plus Javascript laden, evaluieren und die Fallen aufspüren. Da hat er umfangreich was zu tun und muss recht aufwendig programmiert sein ...

Aber um es klar zu stellen, es ist nicht meine eigene Idee, habs nur gelesen, finde aber den Ansatz ganz effektiv.

Die Fragentechnik finde ich persönlich zu unscharf. Oder anders gesagt: n Menschen, n+1 Antworten... :lol:

Verfasst: 06.02.2007 15:47
von Tafkadasom2k5
Jo, also das was ich vorhin vorschlug,in :mrgreen: (grün :D)

Persönlich gefällt mir die JavaScript-Sache ganz gut, gebündelt mit einem Algorhytmus, der von der PHP Datei zufällig in den JavaScript-Aufruf geschrieben wird.

Bis sich die erste Menschen trauen, Bots zu entwickeln, die auf Javascript mit eingehen, wird man auch Fallen einbauen können ^^ (Absichtliche ENdlosschleifen, die sich bei normaler Benutzung nie ergeben würden usw.)
Das wäre dann das absolute AUS für Forenbots... zumindest bis die Fallen wieder ausgehebelt werden :mrgreen: