Der ewige Kampf gegen Spam

port29

deus.Server
Hallo Leute,

ich habe da einen echt harten Kunden mit einer Website. Auf der Seite befindet sich ein Kontaktformular und in letzter Zeit kommt es sehr oft vor, dass es von Robots missbraucht wird. Die Robots schreiben da einen Spam Text rein und schicken das Zeugs ab. Der Kunde bekommt den dann per Mail und regt sich auf.

Für mich wäre es ein klassischer Fall, wo Captchas eingesetzt werden sollten. Der Kunde sagt aber: Was ist wenn die Leute den Text nicht lesen können und uns so ein Auftrag nicht erreicht?

Zweite Möglichkeit, die ich ihm angeboten habe, wäre ein SMS / Telefon Interface, wo der Kunde entweder eine SMS bekommt oder angerufen wird. Auf die Weise wird ihm ein Code übermittelt, den er dann eingibt. Aber das wollte der Kunde auch nicht, nicht jeder hat ein Handy, es gibt Leute, die wollen die Telefonnummer nicht preisgeben, etc.

Mein dritter Vorschlag wäre, per JS die Zeit zu setzen, wenn das Laden der Seite fertig ist und die Zeit anschließend mit dem Formular an den Server zu übertragen. Doch das wollte er auch nicht. Es könnte ja sein, dass JS ausgeschaltet ist oder sich Aliens an die Leitung klemmen, um die Erdzeit zu erfahren.

Kennt Ihr noch irgendwelche Möglichkeiten oder soll ich dem Kunden einfach sagen, dass seine Vorstellung im Internet nicht einsetzbar ist?
 
Ein gutes Captcha ist eingentlich fast immer lesbar - und notfalls lässt man sich's neu generieren.

Natürlich könnte man auch zum Beispiel eine simple Rechenaufgabe stellen (ala 5 + 2 = ?).
Da sollten die meisten Bots schon dran scheitern.

Wie auch immer halte ich Captchas definitiv für die beste Methode.
Sie werden ja auch eigentlich überall genutzt.
 
Ein gutes Captcha ist eingentlich fast immer lesbar - und notfalls lässt man sich's neu generieren.

Natürlich könnte man auch zum Beispiel eine simple Rechenaufgabe stellen (ala 5 + 2 = ?).
Da sollten die meisten Bots schon dran scheitern.

Wie auch immer halte ich Captchas definitiv für die beste Methode.
Sie werden ja auch eigentlich überall genutzt.

Einen Captcha auszulesen, worin man 5 + 2 (oder ähnlich) ausrechnen muss (noch leichter wird es wenn das Captcha, PixelFonts benutzt^^), ist eigentlich nicht schwer, es wird aber wirklich schwer wenn ein Hintergrund existiert die schwer mit den zahlen zu differenzieren ist (Von der Farbe her gesehen). Zahlen sind nicht das Problem, so gesehen, die Buchstaben bringen ihre Tücken mit.
 
Moin,
Der Kunde sagt aber: Was ist wenn die Leute den Text nicht lesen können und uns so ein Auftrag nicht erreicht?
genau, das ist auch meine Einstellung, selbst als Nichtbehinderter nerven mich die manchmal kaum lesbaren Zeichen. Ein genervter Besucher ist schneller weg als man denkt, für ein Unternehmen kann das echt Geld bedeuten. Captchas sind für mich nerviger und unsinniger Blödsinn.
Abfragen wie 2+3*6 sind auch daneben, ich wette, die Fehlerqoute liegt bei 50% ;-)

Meine Lösungen:
Die Wichtigste, Variablen sauber übergeben, Beispiel:
$variable = ($_POST["send_variable"]);
Der Spammer muss dann nämlich seinen Mist per POST übergeben, das stellt schon einmal eine Hürde für Bots dar.
Anschließend findet natürlich eine Prüfung der Variablen statt, kommt hier Mist raus, bricht das Script halt ab.
Als da wären eine Begrenzung/ Prüfung von Zeichen, Prüfung der Mailadresse usw.
Mit strstr($variable , 'Spamwort') and die ('Spam, Mail nicht versandt!');
könnte man auch einen Filter für oft genutzte Spamwörter erstellen.
Alleine hierdurch ist man vor Spam fast gefeit.
Mit diesen Maßnahmen erreicht mich über mein Gästebuch höchstens ein Spameintrag alle 3 Monate.

Die Fantasie der Spammer ist Grenzenlos und die Bots werden immer besser,,,
Auf manchen Seiten, die wirklich gut besucht und Angriffen ausgesetzt sind, arbeite ich zusätzlich zwar nicht mit einem Captcha, sondern zeige eine Zufallszahl im Klartext an. Das kann jeder lesen, auch Behinderte und die Besucher haben dafür auch Verständnis.
Der Trick:
Die Zufallszahl wird bei Eingabe generiert, aber erst nach dem Absenden angezeigt und der Besucher muss dann erst die Zufallszahl eingeben und bestätigen.
Technisch läuft das so, dass die Variablenübergabe in hidden-Felder zwischengespeichert und mit der Eingabe abgeglichen wird. Die Zufallszahl wird wird nicht per POST sondern innerhalb des Scriptes übergeben, ist also nicht einsehbar.
Damit ist gewährleistet, dass der Scriptaufruf immer von der eigenen Seite stammen muss!

Die Bots sind hier außen vor, bleiben noch die Leute, die sich tatsächlich die Mühe machen, Einträge manuell vorzunehmen, tja vor diesen ist man nicht gefeit.

Was ich noch gemacht habe, um Spassvögel mit dem Zurück-Button davon abzuhalten ein Formular zu vergewaltigen,
einen Timeout eingebaut.

Grüße,
Mikesch
 
...
Auf manchen Seiten, die wirklich gut besucht und Angriffen ausgesetzt sind, arbeite ich zusätzlich zwar nicht mit einem Captcha, sondern zeige eine Zufallszahl im Klartext an. Das kann jeder lesen, auch Behinderte und die Besucher haben dafür auch Verständnis.
Der Trick:
Die Zufallszahl wird bei Eingabe generiert, aber erst nach dem Absenden angezeigt und der Besucher muss dann erst die Zufallszahl eingeben und bestätigen.
Technisch läuft das so, dass die Variablenübergabe in hidden-Felder zwischengespeichert und mit der Eingabe abgeglichen wird. Die Zufallszahl wird wird nicht per POST sondern innerhalb des Scriptes übergeben, ist also nicht einsehbar.
Damit ist gewährleistet, dass der Scriptaufruf immer von der eigenen Seite stammen muss!

Die Bots sind hier außen vor, bleiben noch die Leute, die sich tatsächlich die Mühe machen, Einträge manuell vorzunehmen, tja vor diesen ist man nicht gefeit.

...

Dies ist aber nur ein Schutz gegen alltägliche Bots, die alle möglichen Seiten abgrasen und zu spammen versuchen. Wenn sich jemand jedoch auf deine Seiten "konzentriert", dann ist in ein paar Minuten der Bot so erweitert, dass er das ohne Probleme auch machen kann.

Ein nicht allzu nervendes, aber dadurch auch nicht besonders sicheres System wäre noch, dass in Klartext - oder als weitere Hürde ebenfalls auf einem Bild - dabei steht, man soll auf das Bild mit dem Wort ... oder der Zahl x klicken, welche in einer Auswahl von x Bildern enthalten ist. Um es etwas sicherer zu machen, könnte man den Benutzer auch dazu veranlassen, zwei der Bilder anklicken zu müssen.

Gruß,
Stefan
 
Zurück