2012-03-30 2 views
0

Sind Such-Bot oder Spam-Bots in der Lage, JavaScript-Ereignisse zu emulieren/auszulösen, während sie die Seite auslesen?Sind Such-Bots oder Spam-Bots in der Lage, JavaScript-Ereignisse zu emulieren/auszulösen?

+0

Unter welchen Bedingungen? Ein Such-Bot lädt möglicherweise Ihre Seite herunter, um mit Ausdrücken zu sniffen. Wenn es auf Formen trifft, kann es sie mit dat blachen, um zu sehen, was passiert; Wenn es auf Captcha trifft, könnte es OCR und sehen, ob es es austricksen kann. Automator Software kann die Maus bewegen und Klicks auslösen, das war schon immer so. So arbeiten Bots sowohl auf MMORPGs als auch auf Browsern. Was ist Ihr Anwendungsfall - verschärfen Sie Ihre App? – frumbert

+0

Nun können Sie auf meiner Website sehen: www.omerbase.com - die Anti-Spam-Sache. Ich frage mich, ob ein Spam/Such-Bot herausfinden könnte, dass ein DIV anklickbar ist und bedeutet, dass dies Auswirkungen auf die Formularübermittlung hat ... wie Sie traurig sind, kann er das Javascript mit Ausdrücken suchen und ein Beziehungselement innerhalb des HTML finden. Es könnte also ein Klick/Hover/etc Event verursachen ... habe ich das richtig verstanden? –

+0

@ ZlatanOmerović Wenn Ihre Anwendung populär genug wird, ist es nur eine Frage der Zeit, bis jemand auf "View Source" klickt und herausfindet, was der Div beim Klick macht und einen Bot schreibt, der das kontinuierlich macht.Unabhängig davon, ob Such- und Spam-Bots eine Aktion auslösen, können Sie auch annehmen, dass * jemand * einen Bot schreibt, um diese Aktion auszulösen. –

Antwort

0

Here’s jemand, der behauptet, dass Google Seiten in ein kopfloses WebKit lädt, wenn sie gecrawlt werden, um eine Chance zu bekommen, AJAX-Inhalte zu indexieren und aus anderen Gründen. Such-Bots reichen jedoch im Allgemeinen keine Formulare ein.

Ich habe mir Ihre Website angesehen und der Schutz ist vollständig clientseitig. Da ein HTML-Formular nur eine Beschreibung dessen ist, welche Schlüssel/Werte an eine URL gesendet werden sollen, gibt es keinen Grund, warum jemand diese Daten nicht einfach mit einem Bot POSTIEREN könnte.

Beispiel:

POST /contact 
/* ... */ 

fullname=SO+test&email=test%40example.com&reason=test&message=test 

auch, und dies ist wichtig, Sie sind benachteiligen legitime Besucher auf diese Weise. Es gibt viele Gründe, warum JavaScript blockiert, nicht geladen werden kann oder einfach nicht funktioniert.

+0

Ja. Du hast Recht, außer einer Sache. Eine Sache scheint nicht in der Form zu erscheinen, wie sie sein sollte, wenn sie gerade lädt. Dieses Ding erscheint, wenn die Daten im Formular voll sind und wenn die Schaltfläche AntiSpam angeklickt wird. Prüfe dich selbst und inspiziere jedes Eingabeelement im Formular und du wirst sehen, wie ich mich derzeit darum kümmere, Menschen von Bots zu erkennen. :) –

+0

Eigentlich ist das Skript für mich fehlgeschlagen, was ein Grund ist, warum ich die Warnung hinzugefügt habe. Ich habe auf die Anti-Spam-Schaltfläche geklickt und das Formular ausgefüllt, aber die Senden-Schaltfläche wurde nie aktiviert. Fühlen Sie sich frei, etwas menschlichen Scheck hinzuzufügen, aber bitte tun Sie es nicht in JavaScript. –

+0

Längen sind in den Beschreibungen der Felder angegeben ... gültige Mail, Längen, etc ... nur wenn Sie das Skript mit JS-Injektion über Firebug oder etwas überschrieben haben :) –

0

Nein, weil Such-Bots einen statischen HTML-Stream abrufen. Sie führen keine der Initialisierungsereignisse wie init() oder myObj.init(), die in Ihrem JavaScript-Code ist. Sie laden keine externen Bibliotheken wie jQuery und führen weder den Code $(document).ready noch einen der Standard-Listener .click() aus. Wenn also ein Such-Bot-Autor keinen bestimmten Grund hat, absichtlich seinen Such-Bot zu erstellen, um <script> Blöcke auf der Seite auszulösen oder auszuführen, führen sie normalerweise keinen JavaScript-Code aus.

Ich habe einen Such-Bot geschrieben. Alles, was mich interessiert, ist das Extrahieren der Links & Text von der Seite. Ich möchte jedoch nicht die clientseitige Kalenderkomponente oder die Video-Player-Komponente einer anderen Person ausführen. Ich möchte nicht, dass JS-Code in meine Datenbank eingefügt wird, wo er auf der Search Engine Results Page (SERP) enden könnte. Es gibt also keinen Grund, einen eval()-Befehl für einen beliebigen Code in den <script>-Blöcken auszuführen und keine der Initialisierungsereignisse in der JS-Schicht auszulösen.

Wenn Such-Bots das HTML-DOM laden, sind normalerweise externe .js-Dateien darin eingebettet. Um JS auszuführen, müsste man also die Strings für mehrere .js-Dateien analysieren und dann einen Konkatenator für diese Dateien erstellen, der dann versucht, alles, was heruntergeladen wurde, auszuführen. Das ist zusätzliche Arbeit für einen Such-Bot-Autor, für keinen Nettogewinn überhaupt. Wir wollen einfach nicht, dass der JS-Code irgendwo in unseren SERPs erscheint. Andernfalls sieht der JS-Code auf dem SERP wie ein schlechtes Suchergebnis aus. Bots können jedoch Inhalt in <script> Tags sehen & sind nur auf Links zum Crawlen suchen. Das mag der Grund sein, warum Leute denken, dass Bots JavaScript ausführen können, aber sie analysieren sie nur wirklich für ihre Textlinks.

Verwandte Themen