Contao 3 Bot Detection
Bot Detection dient als Hilfsklasse für andere Erweiterungen (Frontend) die erkennen müssen, ob der Zugriff von Mensch oder Maschine erfolgt. (Erkennung von Suchmaschinen, Spider, Crawler, Bots, Harvester, ...)
Eine sichere Erkennung gibt es dabei natürlich nicht.
Es wird über 3 Verfahren versucht dieses zu erkennen:
- User Agent Kennung
- IP Adresse
- Referrer URL
Einfacher Test
Die einfachste Art alle 4 Tests aufzurufen um festzustellen, Bot oder nicht geht so:
$BotDetection= new \BotDetection\ModuleBotDetection();
$BotTest= $BotDetection->checkBotAllTests(\Environment::get('httpUserAgent'));
//true = Bot, false = kein Bot
Die Methode checkBotAllTests, prüft auf 4 Arten ob der Zugriff von einen Bot erfolgt. Dies erfolgt über weitere Hilfsklassen.
- CheckBotAgentSimple::checkAgent prüft über Teil-Strings im User-Agent
- CheckBotIp::checkIP prüft über die IP Adresse gegen einer externen Datei mit Definitionen der Bot-IP Adressen / Netze
- CheckBotAgentExtended::checkAgentName prüft den User-Agent gegen eine externe Datenbank mit Agent Signaturen
- CheckBotReferrer::checkReferrer prüft die Referrer URL gegen einer externen Datenbank