Bot Detection: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K (Nutzung)
K
 
(46 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[File:Bot_Detection.jpg|right|No Bots!]]Bot Detection dient als Hilfsklasse für andere Extensions (Frontend) die erkennen müssen, ob der Zugriff von Mensch oder Maschine erfolgt.
+
[[File:Bot_Detection.jpg|right|No Bots!]]Bot Detection dient als Hilfsklasse für andere Extensions (Frontend) die erkennen müssen, ob der Zugriff von Mensch oder Maschine erfolgt.<br />
 
+
(Erkennung von Suchmaschinen, Spider, Crawler, Bots, Harvester, ...)
{{stub}}
+
 
{{ExtInfo
 
{{ExtInfo
| Dev=Glen Langer (BugBuster)
+
| Dev=Glen Langer ([[User:BugBuster|BugBuster]])
 
| DevSite=http://www.contao.glen-langer.de
 
| DevSite=http://www.contao.glen-langer.de
| ExtVersion=1.0.2
+
| ExtVersion=1.7.2 / 3.4.0
 
| Version=ab 2.9
 
| Version=ab 2.9
 
| TLVersion=2.8
 
| TLVersion=2.8
 
| ERLink=http://www.contao.org/erweiterungsliste/view/botdetection.de.html
 
| ERLink=http://www.contao.org/erweiterungsliste/view/botdetection.de.html
| DonateLink=Cappuccino beim nächsten Stammtisch Treff
+
| TrackerLink=https://github.com/BugBuster1701/botdetection/issues
 +
| DonateLink=http://www.amazon.de/wishlist/26HHEJOU03G76
 +
| Comment=Version für Contao 3.4 online
 
}}
 
}}
  
Zeile 18: Zeile 19:
 
Fragen zum Bot Detection Modul werden im Forum beantwortet: [http://www.contao-community.de/showthread.php?8661-botdetection-Bot-Erkennung Forum - Support für Extensions]
 
Fragen zum Bot Detection Modul werden im Forum beantwortet: [http://www.contao-community.de/showthread.php?8661-botdetection-Bot-Erkennung Forum - Support für Extensions]
 
<br />
 
<br />
Fehler und Wünsche können im [http://dev.typolight-forge.org/projects/botdetection/issues Tracking System] gemeldet werden.
+
Fehler und Wünsche können im [https://github.com/BugBuster1701/botdetection/issues Tracking System] gemeldet werden.
 +
 
 +
=Übersetzungen=
 +
Übersetzungen können auf [https://www.transifex.com/projects/p/botdetection/ Transifex] durchgeführt werden.
  
 
=Installation=
 
=Installation=
 
Installation erfolgt über das Extension Repository im Backend der Contao Installation.<br />
 
Installation erfolgt über das Extension Repository im Backend der Contao Installation.<br />
 
Eine manuelle Installation ist möglich, dazu die ZIP Datei [http://www.contao.org/erweiterungsliste/view/botdetection.html vom Extension Repository laden], entpacken und entsprechend übertragen.<br />
 
Eine manuelle Installation ist möglich, dazu die ZIP Datei [http://www.contao.org/erweiterungsliste/view/botdetection.html vom Extension Repository laden], entpacken und entsprechend übertragen.<br />
Dadurch ein Verzeichnis /system/modules/botdetection angelegt worden sein.<br />
+
Dadurch sollte ein Verzeichnis /system/modules/botdetection angelegt worden sein.
Danach wie dabei üblich /contao/install.php Aufrufen - Update Database durchführen.
+
  
 
=Nutzung=
 
=Nutzung=
Zeile 31: Zeile 34:
 
Es wird über 2 Verfahren versucht dieses zu erkennen:<br />
 
Es wird über 2 Verfahren versucht dieses zu erkennen:<br />
 
* User Agent Kennung
 
* User Agent Kennung
* IP Adresse
+
* IP Adresse (IPv4, IPv6 ab Version 1.4.0)
  
Die ersten beiden Methoden, BD_CheckBotAgent und BD_CheckBotIP, geben nur "true" oder "false" zurück und arbeiten mit internen Teilstrings zur Suche bzw. mit einer externen Datei zur Definition der IP Adressen /  Netze.<br /><br />
+
Die ersten beiden Methoden, [[Bot_Detection#Methode_BD_CheckBotAgent|BD_CheckBotAgent]] und [[Bot_Detection#Methode_BD_CheckBotIP|BD_CheckBotIP]], geben nur "true" oder "false" zurück und arbeiten mit internen Teilstrings zur Suche bzw. mit einer externen Datei zur Definition der IP Adressen /  Netze.<br /><br />
Eine dritte Methode BD_CheckBotAgentAdvanced kam in Version 1.0.2 hinzu, die über eine externe Konfigurationsdatei die Erkennung über User Agent durchführt und als Ergebnis den Kurznamen des Bots zurückgibt bzw. "false" wenn keine Erkennung erfolgte.
+
Eine dritte Methode [[Bot_Detection#Methode_BD_CheckBotAgentAdvanced|BD_CheckBotAgentAdvanced]] kam in Version 1.0.2 hinzu, die über eine externe Konfigurationsdatei die Erkennung über User Agent durchführt und als Ergebnis den Kurznamen des Bots zurückgibt bzw. "false" wenn keine Erkennung erfolgte.
  
 
==Methode BD_CheckBotAgent==
 
==Methode BD_CheckBotAgent==
Die Methode "BD_CheckBotAgent" sucht in 2 Schritten, um möglichst schnell zu Ziel zu kommen.<br />
+
Die Methode "BD_CheckBotAgent" sucht in 2 Schritten, um möglichst schnell ans Ziel zu kommen.<br />
 
Schritt 1 sucht nach Teilstrings die in den meisten Suchmaschinen / Bots im Namen auftauchen:<br />
 
Schritt 1 sucht nach Teilstrings die in den meisten Suchmaschinen / Bots im Namen auftauchen:<br />
'bot'
+
<source lang="text">
'spider'
+
'bot'
'spyder'
+
'spider'
'crawl'
+
'spyder'
'slurp'
+
'crawl'
'robo'
+
'slurp'
'yahoo'
+
'robo'
 +
'yahoo'
 +
</source>
  
 
War Schritt 1 nicht erfolgreich sucht dann Schritt 2 nach weiteren Strings die meist der Name der Suchmaschine entsprechen, wie:<br />
 
War Schritt 1 nicht erfolgreich sucht dann Schritt 2 nach weiteren Strings die meist der Name der Suchmaschine entsprechen, wie:<br />
'altavista'
+
<source lang="text">
'archiver'
+
'altavista'
'inktomi'
+
'archiver'
'twiceler'
+
'inktomi'
...
+
'twiceler'
 
+
...
 +
</source>
 
Als Ergebnis kommt "true" oder "false" zurück ("true" = Suchmaschine / Bot gefunden)
 
Als Ergebnis kommt "true" oder "false" zurück ("true" = Suchmaschine / Bot gefunden)
  
Zeile 61: Zeile 67:
 
Dazu dient die Methode "BD_CheckBotIP".<br />
 
Dazu dient die Methode "BD_CheckBotIP".<br />
 
<br />
 
<br />
Dazu gibt es eine Kofigurationsdatei im Verzeichnis config des Moduls: bot-ip-list.txt<br />
+
Dazu gibt es zwei Konfigurationsdateien im Verzeichnis ''config'' des Moduls: '''''bot-ip-list.txt''''' und '''''bot-ip-list-ipv6.txt'''''<br />
Derzeitiger Inhalt kennt eine IP Adresse eines Spiders aus Israel sowie Netzadressen für Google und MSN/Bing.<br />
+
Derzeitiger Inhalt kennt IP Adressen für einige Bots und Spiders sowie Netzadressen für Google und MSN/Bing.<br />
 
<br />
 
<br />
Eigene IP-Adressen bzw. Netze können in dieser Datei ebenfalls eingetragen werden, diese sind dann aber nicht updatesicher.
+
Eigene IP-Adressen bzw. Netze können in diesen Dateien ebenfalls eingetragen werden, diese sind dann aber nicht updatesicher.
Daher ist es besser diese, wie dort erwähnt, in der localconfig.php einzutragen wie folgt:<br />
+
Daher ist es besser diese, wie dort erwähnt, in der localconfig.php einzutragen wie folgt:
$GLOBALS['TL_BOTDETECTION']['BOT_IP'][] = '192.168.1.2';
+
<source lang="php">
$GLOBALS['TL_BOTDETECTION']['BOT_IP'][] = '192.168.0.0/24';
+
$GLOBALS['BOTDETECTION']['BOT_IP'][] = '192.168.1.2';
 +
$GLOBALS['BOTDETECTION']['BOT_IP'][] = '192.168.0.0/24';
 +
</source>
 +
Für IPv6 dann in der Art:
 +
<source lang="php">
 +
$GLOBALS['BOTDETECTION']['BOT_IPV6'][] = '2001:0db8::1';
 +
$GLOBALS['BOTDETECTION']['BOT_IPV6'][] = '2001:0db8:85a3:0800::/56';
 +
</source>
  
 
==Methode BD_CheckBotAgentAdvanced==
 
==Methode BD_CheckBotAgentAdvanced==
Zeile 79: Zeile 92:
 
D.h., es folgt nicht einfach die Rückgabe von beispielsweise "Google" sondern "Googlebot" oder "Googlebot-Image" oder "Googlebot-Mobile" usw. je nachdem was erkannt wurde.
 
D.h., es folgt nicht einfach die Rückgabe von beispielsweise "Google" sondern "Googlebot" oder "Googlebot-Image" oder "Googlebot-Mobile" usw. je nachdem was erkannt wurde.
 
Diese mehrfachen Namen einer Suchmaschine gibt es auch bei anderen Herstellern wie MSN, Yahoo, um nur einige zu nennen.
 
Diese mehrfachen Namen einer Suchmaschine gibt es auch bei anderen Herstellern wie MSN, Yahoo, um nur einige zu nennen.
 +
<br /><br />
 +
Eigene bzw. unbekannte User Agent Kennungen können in der Datei /system/config/localconfig.php eingetragen werden:<br />
 +
<source lang="php">
 +
$GLOBALS['BOTDETECTION']['BOT_AGENT'][] = array("unitbot","UniBot from FHTW");
 +
$GLOBALS['BOTDETECTION']['BOT_AGENT'][] = array("myprivat","My privat bot");
 +
</source>
 +
Die Parameter sind: Kurzname in Kleinbuchstaben, Beschreibung.
  
 
=Demo Module=
 
=Demo Module=
 +
Dem Modul Bot Detection sind 2 Demos beigefügt. Die Einbindung in die Demo Klasse erfolgt per Import.
 +
<source lang="php">
 +
$this->import('ModuleBotDetection');
 +
</source>
 +
 +
==Frontend Demo 1==
 +
Demo 1 testet mit allen 3 Methoden die aktuelle IP und User Agent Kennung und zeigt die Ergebnisse an.<br />
 +
Beispiel siehe auf der Entwickler Webseite - [http://www.contao.glen-langer.de/BD_Frontend_Demo_1.html Demo 1].
 +
 +
==Frontend Demo 2==
 +
Demo 2 stellt ein Formular zur Verfügung, um zu prüfen, ob eine User Agent Kennung vom Modul als Bot erkannt werden würde.<br />
 +
Dazu werden die beiden Agent Methoden aufgerufen und das Ergebnis angezeigt.<br />
 +
Beispiel siehe auf der Entwickler Webseite - [http://www.contao.glen-langer.de/BD_Frontend_Demo_2.html Demo 2].
 +
<br /><br />
 +
 +
----
 +
--[[Benutzer:BugBuster|BugBuster]] 21:34, 1. Jul. 2011 (CEST)

Aktuelle Version vom 17. Februar 2015, 00:38 Uhr

No Bots!
Bot Detection dient als Hilfsklasse für andere Extensions (Frontend) die erkennen müssen, ob der Zugriff von Mensch oder Maschine erfolgt.

(Erkennung von Suchmaschinen, Spider, Crawler, Bots, Harvester, ...)

Erweiterungs-Übersicht
Name des Entwicklers Glen Langer (BugBuster)
Entwickler Webseite http://www.contao.glen-langer.de
Version der Erweiterung 1.7.2 / 3.4.0
Kompatibilität mit Contao Version ab 2.9
Kompatibilität mit TYPOlight Version 2.8
Link zum Extension Repository http://www.contao.org/erweiterungsliste/view/botdetection.de.html
Den Entwickler unterstützen http://www.amazon.de/wishlist/26HHEJOU03G76
Link zum Tracker https://github.com/BugBuster1701/botdetection/issues
Anmerkung Version für Contao 3.4 online

Forum

Fragen zum Bot Detection Modul werden im Forum beantwortet: Forum - Support für Extensions
Fehler und Wünsche können im Tracking System gemeldet werden.

Übersetzungen

Übersetzungen können auf Transifex durchgeführt werden.

Installation

Installation erfolgt über das Extension Repository im Backend der Contao Installation.
Eine manuelle Installation ist möglich, dazu die ZIP Datei vom Extension Repository laden, entpacken und entsprechend übertragen.
Dadurch sollte ein Verzeichnis /system/modules/botdetection angelegt worden sein.

Nutzung

Das Modul Bot Detection stellt 3 Methoden zur Erkennung bereit.
Eine sichere Erkennung gibt es dabei natürlich nicht.
Es wird über 2 Verfahren versucht dieses zu erkennen:

  • User Agent Kennung
  • IP Adresse (IPv4, IPv6 ab Version 1.4.0)

Die ersten beiden Methoden, BD_CheckBotAgent und BD_CheckBotIP, geben nur "true" oder "false" zurück und arbeiten mit internen Teilstrings zur Suche bzw. mit einer externen Datei zur Definition der IP Adressen / Netze.

Eine dritte Methode BD_CheckBotAgentAdvanced kam in Version 1.0.2 hinzu, die über eine externe Konfigurationsdatei die Erkennung über User Agent durchführt und als Ergebnis den Kurznamen des Bots zurückgibt bzw. "false" wenn keine Erkennung erfolgte.

Methode BD_CheckBotAgent

Die Methode "BD_CheckBotAgent" sucht in 2 Schritten, um möglichst schnell ans Ziel zu kommen.
Schritt 1 sucht nach Teilstrings die in den meisten Suchmaschinen / Bots im Namen auftauchen:

'bot'
'spider'
'spyder'
'crawl'
'slurp'
'robo'
'yahoo'

War Schritt 1 nicht erfolgreich sucht dann Schritt 2 nach weiteren Strings die meist der Name der Suchmaschine entsprechen, wie:

'altavista'
'archiver'
'inktomi'
'twiceler'
...

Als Ergebnis kommt "true" oder "false" zurück ("true" = Suchmaschine / Bot gefunden)

Methode BD_CheckBotIP

Der Bot von Google oder der MSN-Suche bzw. von Bing sind manchmal verdeckt unterwegs, was verfälschte Statistiken zur Folge hat.
Um diese "Undercover" Suchmaschinen aufdecken zu können, muss über die IP-Adresse gefiltert werden.
Dazu dient die Methode "BD_CheckBotIP".

Dazu gibt es zwei Konfigurationsdateien im Verzeichnis config des Moduls: bot-ip-list.txt und bot-ip-list-ipv6.txt
Derzeitiger Inhalt kennt IP Adressen für einige Bots und Spiders sowie Netzadressen für Google und MSN/Bing.

Eigene IP-Adressen bzw. Netze können in diesen Dateien ebenfalls eingetragen werden, diese sind dann aber nicht updatesicher. Daher ist es besser diese, wie dort erwähnt, in der localconfig.php einzutragen wie folgt:

$GLOBALS['BOTDETECTION']['BOT_IP'][] = '192.168.1.2';
$GLOBALS['BOTDETECTION']['BOT_IP'][] = '192.168.0.0/24';

Für IPv6 dann in der Art:

$GLOBALS['BOTDETECTION']['BOT_IPV6'][] = '2001:0db8::1';
$GLOBALS['BOTDETECTION']['BOT_IPV6'][] = '2001:0db8:85a3:0800::/56';

Methode BD_CheckBotAgentAdvanced

Die Methode "BD_CheckBotAgentAdvanced" wird von einer externen Konfigurationsdatei gesteuert zur Erkennnug der User Agents. Als Ergebnis folgt der Kurznamen des Bots bzw. "false", wenn keine Erkennung erfolgte.

Die externe Konfigurationsdatei wird aus bekannten User Agent Angaben von Suchmaschinen / Bots generiert und regelmäßig erneuert.

Hinweis
Diese externe DB unterscheidet auch zwischen den verschiedenen Arten von Suchmaschinen eines Herstellers.
D.h., es folgt nicht einfach die Rückgabe von beispielsweise "Google" sondern "Googlebot" oder "Googlebot-Image" oder "Googlebot-Mobile" usw. je nachdem was erkannt wurde. Diese mehrfachen Namen einer Suchmaschine gibt es auch bei anderen Herstellern wie MSN, Yahoo, um nur einige zu nennen.

Eigene bzw. unbekannte User Agent Kennungen können in der Datei /system/config/localconfig.php eingetragen werden:

$GLOBALS['BOTDETECTION']['BOT_AGENT'][] = array("unitbot","UniBot from FHTW");
$GLOBALS['BOTDETECTION']['BOT_AGENT'][] = array("myprivat","My privat bot");

Die Parameter sind: Kurzname in Kleinbuchstaben, Beschreibung.

Demo Module

Dem Modul Bot Detection sind 2 Demos beigefügt. Die Einbindung in die Demo Klasse erfolgt per Import.

$this->import('ModuleBotDetection');

Frontend Demo 1

Demo 1 testet mit allen 3 Methoden die aktuelle IP und User Agent Kennung und zeigt die Ergebnisse an.
Beispiel siehe auf der Entwickler Webseite - Demo 1.

Frontend Demo 2

Demo 2 stellt ein Formular zur Verfügung, um zu prüfen, ob eine User Agent Kennung vom Modul als Bot erkannt werden würde.
Dazu werden die beiden Agent Methoden aufgerufen und das Ergebnis angezeigt.
Beispiel siehe auf der Entwickler Webseite - Demo 2.


--BugBuster 21:34, 1. Jul. 2011 (CEST)

Ansichten
Meine Werkzeuge

Contao Community Documentation

Chuck Norris programmiert kein PHP, er diktiert das Ergebnis. Den Rest macht der Editor aus Angst.

Stefan Lindecke
In anderen Sprachen
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge