Zu ignorierende Pfade & Zu ignorierende REGEX scheint nicht richtig zu funktionieren
Ich habe aktuell das Problem, dass ein Formularaufruf ca. 500000 Einträge in 6 Monaten in der DB ablegt, was den Aufruf des Addons massiv verlangsamt. Grund sind irgendwelche Trolle, die versuchen Schindluder mit dem Formular zu produzieren (= massig Seitenaufrufe von unterschiedlichen IPs aus).
Der Versuch, diesen Aufruf gar nicht erst zu loggen, schlägt jedoch fehl. Egal was ich in den Einstellungsfeldern definiere, es wird weiterhin geloggt.
Zu ignorierende Pfade:
www.domain.de/service/kurszertifikat-abrufen
und/oder
Zu ignorierende REGEX:
^www\.domain\.de\/service\/kurszertifikat-abrufen
Was mache ich falsch oder liegt da ein Bug vor?
Beide Varianten sollten doch einen Pfad, welcher mit www.domain.de/service/kurszertifikat-abrufen beginnt nicht loggen?
Ist dies hier die Prozedur zum loggen des Aufrufes? Wenn ja, dann wird hier doch gar nix bzgl. Pfade/Regex ignorieren geprüft?
if (rex::getRequest()->getRequestUri() != "/favicon.ico") {
if ($response_code == rex_response::HTTP_OK || !$addon->getConfig("statistics_rec_onlyok", false)) {
// visitduration, number pages visited, last visited page
$sql = rex_sql::factory();
$sql->setQuery("INSERT INTO " . rex::getTable('pagestats_sessionstats') . " (token, lastpage, lastvisit, visitduration, pagecount) VALUES (:token, :lastpage, NOW(), 0, 1) ON DUPLICATE KEY UPDATE lastpage = VALUES(lastpage), visitduration = visitduration + (NOW() - lastvisit), lastvisit = NOW(), pagecount = pagecount + 1", [":token" => $token, ":lastpage" => $url]);
}
}
Aktuell werden für die Sessionstats die Einstellungen "Zu ignorierende Pfade & Zu ignorierende REGEX" nicht angewendet.
Für das ursprüngliche Anliegen würde ich empfehlen, eine Firewall zu verwenden und Filter, die Bots nach bestimmten Aktivitäten komplett ausschließen.
Generell sind für eine Datenbank 500.000 Datensätze 'n Witz - jedoch vielleicht für die aktuelle Umsetzung des statistics-Addons ein Problem, wenn diese vorgehalten und nicht selektiert werden.