Da ich für die Advanced Suche mich auf eine Konfig von Dritten verlasse, wollte ich mal wissen ob auch alle Bots erkannt werden die bei mir so auflaufen.
In meiner access.log habe ich, zumindest mir, unbekannte gefunden.
Also habe ich mal ein Add-on zu meiner Bot Detection "geschrieben", welches mit alle Bots (User Agent) in eine Log schreibt die nicht durch die Advanced Methode erkannt werden.
Da die Konfig nur Bot Signaturen enthält brauche ich einen Zugriff den nur Bots tun, nicht ein normaler Surfer.
Da viel mir nur die robots.txt ein.
Also schrieb ich in meine htaccess:
Code:
RewriteRule robots.txt myrobots.php
Die PHP Datei muss nun einerseits den Inhalt der robots.txt ausgeben und weiterhin prüfen ob das ein unbekannter Bot war.
Der Einfachheit halber gebe ich den Inhalt der robots.txt direkt aus und lese die nicht erst über Dateioperationen ein. Nicht ganz updatesicher, wenn Leo dran was ändert, aber für meinen Fall nicht tragisch.
PHP-Code:
<?php
Header('Content-type: text/plain');
echo "User-agent: *
Disallow: /plugins/
Disallow: /system/
Disallow: /templates/
Disallow: /typolight/
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /flash.php
Disallow: /GPL.txt
Disallow: /INSTALL.txt
Disallow: /LGPL.txt
";
//ab hier beginnt die Zukunft
define('TL_MODE', 'FE');
require('system/initialize.php');
class ModuleBotDetectionGenerate extends ModuleBotDetection
{
public function run()
{
$test01 = $this->BD_CheckBotAgentAdvanced(); // Check for Bot
if ($test01 === false)
{
if ($this->Environment->httpUserAgent) {
$UserAgent = trim($this->Environment->httpUserAgent);
} else {
return false; // No return address, no search.
}
}
if ($UserAgent)
{
log_message("ModuleBotDetectionGeneration: ".$UserAgent,"genuseragents.log");
}
}
}
$objBotDetectionGen = new ModuleBotDetectionGenerate();
$objBotDetectionGen->run();
?>
Testen kann man das über Zugriff mit eigenem Browser, die User Agent Kennung landet dann in der Logdatei, da der Browser ja ein unbekannten Bot darstellt
Mal sehen was so ankommt die Tage.
Lesezeichen