Ich sehe immer wieder merkwürdiges Verhalten in unseren Protokollen, wo URLs, auf die normalerweise nur über eine POST-Anfrage zugegriffen werden soll, über GET aufgerufen werden. Die URLs enthalten solche, die nur über JavaScript erstellt werden, so dass Sie nicht erwarten würden, dass eine normale Spinne auf sie stößt. Wenn ich in unseren Protokollen nach einer IP suche, von der diese Anfragen kommen, scheint es, als ob dieser Benutzer uns immer nur GET-Anfragen gesendet hat.
Es scheint kein typisches Bot-Verhalten zu sein - die Anfragen sind verteilt, anstatt unseren Server mit einer Reihe von Anfragen in einem kurzen Zeitrahmen zu spammen. Die Benutzeragenten sind alle reguläre Browser. Allerdings - und das ist etwas spekulativ - sieht es nicht wirklich so aus, als würde ein Mensch die Seite durchsuchen, da sie scheinbar überall herumspringen, statt einem Link zum nächsten zu folgen.
Sieht jemand anderes diese Art von Verhalten auf ihrer Website? Irgendwelche Vorschläge, was es verursacht?
Es könnte jemand sein, der auf Ihrer Website nach Exploits sucht. Sie würden Ihre Formulare analysieren und dann ihre eigenen URLs erstellen, die nach Schwächen oder unkonventionellen Möglichkeiten zur Nutzung des Service suchen. Wenn es normalerweise die gleiche IP-Adresse ist, dann könnte man wahrscheinlich annehmen, dass dies der Fall ist.
Ein Beispiel könnte sein, dass Sie ein Streaming-Medienanbieter sind und jemand versucht, die Quell-URLs für ein Video-Downloader-Skript zusammenzustellen. Oft sind es Spammer, die versuchen, über Ihre Kontaktformulare zu kommunizieren.
Nehmen Sie nicht zu viel von IP-Adressen und Benutzeragenten an. Ersteres kann (über Netzwerke wie Tor) proxisiert werden und das spätere kann beliebig geändert werden. Nur weil sich die IPs und Benutzeragenten ändern, heißt das nicht, dass nicht derselbe Benutzer die Anfragen generiert.
Ich kratze häufig Websites nach Informationen, und wenn ich wirklich faul bin, werde ich alles als GET
einreichen, anstatt POST
... zu verwenden. CGIs, die ein POST
benötigen, akzeptieren oft ein %Code%. Ich habe mein Skript so eingerichtet, dass es eine zufällige GET
aus einer Liste verwendet: entweder Safari auf dem iPad, Firefox auf XP oder Internet Explorer auf Vista.
Wer weiß, vielleicht bin ich es, der Ihre Seite scrappt und die Punkte für die Antwort bekommt; -).
Nur eine wilde Vermutung:
Es gibt etwas namens "web accelerator", ein Browser-Plugin, das Links vorliest. Wenn Sie also entschieden haben, auf eines zu klicken, wurde es bereits zwischengespeichert. Es sollte keine Dinge zwischenspeichern, die wie Abfragen aussehen, aber vielleicht erkennt einige Ihre URLs als für den Vorabruf geeignet. Da es im Browser läuft, sieht es zumindest alle URLs, die Javascript dem Dokument hinzugefügt hat (mittels document.write oder DOM-Zugriff).
Ein "Web Accelerator" kann auch als Teil eines Web-Proxy implementiert werden. Es scheint weniger wahrscheinlich, weil es das Javascript interpretieren müsste, aber wenn die URLs im Javascript vollständig angezeigt werden, kann es sein, dass ein Text für irgendetwas, das wie eine URL aussieht, einfach überfüllt wird und sie möglicherweise findet.
Dies würde erklären, warum die Anfragen verteilt sind (so würde jedes Mal, wenn ein realer Benutzer die Site besucht, ein paar Anfragen auslösen), warum die User-Agent-Strings dem tatsächlichen Browser entsprechen (wenn es ein Browser-Plugin ist, verwendet es dessen Benutzer) Agentenstring) und warum sie überall herumspringen (sie versuchen gleichzeitig, mehrere Links vorab zu laden, und die Heuristiken, die auswählen, welche sie sein sollte, funktionieren nicht gut mit Ihrer Site).