Wird ein Spam-Bot in der Lage sein, ein Formular zu senden, wenn auf der Seite keine Schaltfläche zum Senden vorhanden ist?

7

Ich frage mich nur, ob jemand weiß, ob ein Spam-Bot in der Lage sein wird, ein Formular zu senden, wenn auf der Seite kein Absenden-Button vorhanden ist. Ich versuche nur eine sehr einfache Spam-Abwehr ohne CAPTCHA durchzuführen. Der Gedanke ist, jQuery zu verwenden, um die Übermittlungsschaltfläche zu rendern, wenn der Benutzer auf irgendeine Weise mit dem Formular interagiert. Irgendwelche Gedanken würden geschätzt werden.

    
Mike Muller 04.04.2011, 20:25
quelle

7 Antworten

10

Ein Spambot, das aus einem Code-Wrapper um WebKit oder einen anderen Browserkern besteht, kann nur die Ausführung des DOM "submit ()" erzwingen oder (noch radikaler) einfach eine POST-Transaktion starten.

>

Es ist am besten, sich einen Spambot als einen massiv mächtigen, bösen Roboter vorzustellen, dessen Browser keine Regeln befolgt, die von Atomenergiestrahlen an sein Robotergehirn angehängt werden. Aber es ist ein Roboter, der nicht gut lesen kann.

    
Pointy 04.04.2011 20:30
quelle
6

Ein Bot wird definitiv in der Lage sein, Ihren Post-Button zu finden, wenn auch nur selten.

Eine sehr beliebte Art Methode, wie Sie versuchen, ist ein Honeypot-Formularelement zu erstellen. Die bearbeitbaren Honeypot-Felder auf dem Formular sind für Personen unsichtbar (Sie können jQuery / CSS verwenden, um diese Formularelemente auszublenden). Sie werden validiert, wenn die Formulardaten gepostet werden und wenn sie irgendwelche Eingaben enthalten, dann muss der Übergeber ein Bot irgendeiner Art sein.

Die Verwendung verdeckter Feldnamen und die Validierung können diese Bots ebenfalls stoppen. Wenn das E-Mail-Feld ein @ -Zeichen haben muss und der Bot nicht wissen kann, welches Feld eine E-Mail ist und welche nicht, werden die Chancen, dass es einen erfolgreichen Beitrag geben wird, stark reduziert.

    
ashurexm 04.04.2011 20:34
quelle
2

Ja, es wäre möglich, dass ein Bot keine Schaltfläche zum Senden benötigt.

Wenn Sie (pseudohtml) haben:

%Vor%

Der Bot könnte einfach das form -Tag und die Namen der Felder im Formular analysieren und das POST selbst ausgeben, ohne jemals den Senden-Button zu berühren.

    
Femaref 04.04.2011 20:30
quelle
1

Ja, sie können. Die Schaltfläche wird nicht vollständig benötigt:

%Vor%

Aber der Bot könnte unangenehm sein und eine eigene POST-Anfrage an Ihren Server senden, da es nicht so schwierig ist.

Wenn Sie jedoch mit jQuery ein <input type="hidden" /> mit einem secret-ish-Wert (bekannt vom Server und dynamisch für jede Sitzung abgerufen) erstellen und nur akzeptierte Submits akzeptieren, wenn dieser Wert vorhanden wäre, würden Sie alle nicht-JS-fähigen Dateien stoppen Bots.

Der Nachteil ist, dass Sie verhindern würden, dass nicht von JS aktivierte Benutzer Ihre Webseite verwenden. Aber das ist der ständige Kampf, den Sie kämpfen müssen, um die Spammer zu töten ...

    
Blender 04.04.2011 20:31
quelle
1

Normalerweise machen wir ein verstecktes Feld mit einem "saftigen attraktiven" Namen wie "Vorname".

Dann im Codebehind führen wir etwas wie:

%Vor%     
Altabear 02.12.2011 19:43
quelle
0

Nachdem ich nie einen Spam-Bot programmiert habe, kann ich nur Vermutungen anstellen. Aber ich würde annehmen, dass das Vorhandensein eines Submit-Buttons nicht viel ausmachen würde. Wahrscheinlicher ist es, das <form> -Tag zu betrachten und basierend darauf zu bestimmen, wo eine POST / GET-Anfrage gemacht werden sollte. Eine bessere Wette (aber keinesfalls narrensicher) wäre, kein <form> zu verwenden, sondern manuell eine $ .post zu machen (da Sie jQuery erwähnt haben), wenn auf eine Schaltfläche oder einen Link Ihrer Wahl geklickt wird. Daten von Elementen im laufenden Betrieb.

    
korona 04.04.2011 20:33
quelle
0

Es ist nicht erforderlich, die Schaltfläche zum Senden so oft zu rendern, dass die Daten von einem Remote-Server gesendet und nicht von der Seite selbst ausgefüllt werden. CAPTCHA ist schrecklich, manchmal ist es so unklar, dass ich nicht verstehe, was es sagt. Ich benutze drei Methoden gleichzeitig, um Bots zu stoppen.

  1. Wenn Sie die Quell-IP-Adresse der Formulare mit der Ziel-IP-Adresse vergleichen, findet keine weitere Verarbeitung statt, wenn sie nicht übereinstimmen.
  2. Ein von CSS ausgeblendetes Feld, das leer gelassen wird, wenn es ausgefüllt ist, ist ein Bot und wird ignoriert.
  3. Ein anderes Feld, das beim Übergeben des Formulars einen vorgegebenen Wert von JavaScript erhält. Keine Übereinstimmung, keine weitere Verarbeitung.

Ich habe auch die Versuche mit den IP-Adressen zu einer Datenbanktabelle aufgezeichnet. Die Versuche haben einen, zwei oder alle Tests nicht bestanden.

Aber Sweatshop-Spammer zu stoppen ist eine ganz andere Geschichte. Sweatshop-Spammer sind Leute, die billig für den manuellen Versand von Spam eingesetzt werden. Wenn Sie eine größere Website haben, kann es sich lohnen, einen Dienst zu verwenden, der sich mit dieser Art von Spam befasst. Einige Dienste befassen sich auch mit beleidigender Sprache.

    
user1609889 21.01.2013 14:19
quelle

Tags und Links