Autor |
Nachricht |
Azraeldark
Threadersteller
Dabei seit: 20.08.2013
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mi 21.08.2013 08:45
Titel
|
|
|
Okay hat geklappt. Bei einer Sekunde
Nur noch eine letzte Frage. Ist doch richtig, dass ein Bot mehrfach liest oder? Wegen der Sekunde. D.h. er ruft doch mehrere Seiten innerhalb einer Sekunde auf oder?
Weil ansonsten ist das mit der einen Sekunde doch eng.
Ich werde zwar sicherheitshalber noch ein Botscript dranhängen, aber die sind ja wie schon erwähnt nicht so zuverlässig
|
|
|
|
|
Azraeldark
Threadersteller
Dabei seit: 20.08.2013
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mi 21.08.2013 08:46
Titel
|
|
|
qualidat hat geschrieben: | Azraeldark hat geschrieben: | Dennoch wollte ich iwie von JS weg bei der Ermittlung. |
Warum? Da PHP serverseitig läuft, kannst du ohne Interaktion lediglich das Zeitverhalten erkennen. Der Benutzer agiert aber hauptsächlich lokal und da gibts nichts anderes als JS ... |
Ja. Da hast du natürlich recht. Ich meinte auch nicht vollständig von JS weg, sondern eben nur für die BOT Erkennung.
JS habe ich da drauf wie blöd.
Der Hintergrund ist für mich eine reine Sache der Übersicht.
Zuletzt bearbeitet von Azraeldark am Mi 21.08.2013 08:47, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
Azraeldark
Threadersteller
Dabei seit: 20.08.2013
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mi 21.08.2013 09:13
Titel
|
|
|
Okay. Zuckt anscheinend. Danke
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Mi 21.08.2013 09:42
Titel
|
|
|
qualidat hat geschrieben: | Du kannst ja mal versuchen, (per Javbascript und Timer) die Mausbewegungen zu tracken und beim Seitenwechsel per POST mitzusenden. Sind die extrem geradlinig oder garnicht vorhanden, ists wohl ein Bot.
Alternativ dazu könnte man versuchen die Bildschirmauflösung zu ermitteln. Ich weiss nicht, was das Ergebnis bei einem Bot ist, evtl. Garnichts - musst du mal testen. |
Welcher "Bot" hat denn ´ne eingebaute Javascript-Engine?
Zuletzt bearbeitet von bacon am Mi 21.08.2013 09:43, insgesamt 1-mal bearbeitet
|
|
|
|
|
Azraeldark
Threadersteller
Dabei seit: 20.08.2013
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mi 21.08.2013 10:43
Titel
|
|
|
Ich weiß was er meinte. Passt schon
Wäre auch eine Möglichkeit gewesen, da ja gerade Bots Javascript nicht unterstützen.
Also wäre der Weg eben andersherum gegangen.
Beim ersten Aufruf erstmal als Bot kennzeichnen. Erst durch Useraktion (mit JS) dann die Kennung auf Human stellen.
War mir aber dann doch etwas zu umständlich und zu ungenau, da so ein altmodischer User der JS deaktiviert hat (Gibt es noch) keine Chance hat.
Wie gesagt. Ist gelöst
EDIT:
Ach so. Da ich es selbst hasse in Foren "ist gelöst" zu lesen, ohne, dass aufgezeigt wurde wie es gelöst wurde schreibe ich mal wie ich es gemacht habe.
Im Prinzip wie schon beschrieben.
Ich habe eine Tabelle angelegt, die die IP sowie eine Kennung (zB. 1 für Bot oder unbekannt) und einen Zeitstempel speichert.
Beim ersten Aufruf wird also einfach überprüft ob es schon einen Eintrag mit der entsprechenden IP gibt.
Wenn nicht wird der Eintrag erstellt mit der Kennung 1 für Bot und einem Zeitstempel (aktuelle Zeit + eine Sekunde).
Diese eineSekunde ist völlig ausreichend. D.h. jetzt ist der unbekannte Besucher erst mal ein Bot.
Ruft er die Seite erneut auf, wird einfach der Zeitstempel überprüft. Liegt der Aufruf innerhalb des Timestamps handelt es sich mit Sicherheit um einen Bot. Wenn nicht ist es ein Mensch, da dieser weitaus länger als eine Sekunde braucht um zu interagieren sofern er ernsthaft surft.
Tja und mit diesen Daten kann ich dann arbeiten.
Ach so. Ich setzte noch eine Session beim zweiten Aufruf. Die Litanei muss ja nicht ständig abgefragt werden.
Zuletzt bearbeitet von Azraeldark am Mi 21.08.2013 10:51, insgesamt 1-mal bearbeitet
|
|
|
|
|
Azraeldark
Threadersteller
Dabei seit: 20.08.2013
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mi 21.08.2013 11:23
Titel
|
|
|
Nochmal EDIT
Kann leider den vorherigen nicht mehr editieren.
Es geht zwar, hat aber doch noch ein paar Häkchen.
Situation:
Ich habe über einen Cronjob jetzt einfach mal einen Google Bot und einen Spybot erstellt und auf die Seite losgelassen.
Wenn ich im Admin alle Bots deaktiviere kommt auch keiner durch.
Wenn ich im Admin nur Google zulasse, kommt auch nur Google durch.
Aber das Problem bezieht sich auf die Gäste bzw. Ottonormal User der nur mal guggen will.
Denn der ist ja beim ersten Aufruf auch erstmal Bot.
Wenn ich die Nummer so einstelle, dass nur Googlebots durchkommen, oder gar überhaupt kein Bot, sieht ja der Gast auch nix,es sei denn er reloaded die Seite.
Ich habe das ganze jetzt so modifiziert, dass der erste Modus erst mal Unbekannt ist und erst beim zweiten Aufruf der Typ des Besuchers ermittelt wird.
Was aber in sofern doof ist, da jetzt auch alle Bots (obwohl deaktiviert) zumindest beim ersten Aufruf lesen können.
Ich dachte schon ich könnte das über einen Reload lösen, was aber so nicht geht und abgesehen davon mir gar nicht schmeckt.
Also wenn es bessere Lösungen gibt, immer her damit
|
|
|
|
|
Smooth-Graphics
Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 21.08.2013 12:21
Titel
|
|
|
Was spricht gegen eine fertige Lösung?
z.B. fand ich http://www.botscout.com/ und http://www.robotstxt.org/db.html.
Ansonsten fehlen dir halt ganz viele Ausnahmen in deinem System – so einfach geht es denke ich nicht. Du vergisst User ohne JS, du redest nur von Google Bots, was aber ist mit all den anderen guten Bots, usw.…
|
|
|
|
|
Azraeldark
Threadersteller
Dabei seit: 20.08.2013
Ort: -
Alter: 49
Geschlecht:
|
Verfasst Mi 21.08.2013 13:48
Titel
|
|
|
Über Botscout bin ich auch gestolpert. Das werde ich mir auch noch genauer anschauen.
So wie ich das aber im Grunde verstanden habe, basiert das ganze auch nur auf einer USER Agent und IP Liste, welches ja nicht unbedingt zuverlässig ist, da sich beides regelmässig ändern kann.
Abgesehen davon ist das ganze auch in sofern etwas zu groß für mich, da (wie du schon richtig erkanntest) es mir Hauptsächlich um google geht.
Ich will Bots ja nicht ausschließen. Es sei denn ich stelle das im Admin so ein, aber generell habe ich das nicht vor.
Aus diesem Grunde reicht mir ja eine simple Geschichte. Sprich
1)Erkennen ob Bot
2) Wenn ja, guggen ob google oder anderer Bot.
Wie gesagt. Google erkennen kann ich schon selbst. Mir gehts darum eben generell zu erkennen ob Bot oder Mensch. Dabei ist für mich irrelevant was für ein Bot das ist. Das Problem mit Spambots habe ich anderweitig und zuverlässig gelöst.
Also wird mein Forum nicht mehr zugespammt.
Und was google anbelangt. Wie gesagt. Ich will keine Bots ausschließen, möchte aber nur explizit google in meiner Bothistorie filtern, da google die Weltweit größte SuMa ist und somit auch andere SuMas füttert.
|
|
|
|
|
|
|
|
Ähnliche Themen |
Webseite vor unerwünschten Bots schützen
VLC - Bildformate erkennen
Zeichen erkennen
JavaScript erkennen
{php} farbe aus bild erkennen
Anfangsbuchstabe erkennen und sortieren
|
|