Page 1 of 1
yandex-Bot läuft Amok
Posted: Tue 4. Nov 2014, 15:03
by top
Ich hatte gestern ein kleines Problem mit einer Kundenseite. Angeblich war der Webspace voll, (ist auf 250 MB beschränkt) obwohl das komplette FTP-Backup der Seite keine 40 MB groß war.
Wie von mir vermutet hatte der Suport des Providers in einem tmp-Verzeichnis (auf welches ich selbst keinen Zugriff habe) über 150 MB an temporären Dateien gefunden (und gelöscht).
Ich habe mal SESSION_FEinit und frontend_edit in der Config deaktiviert und dann lief das Verzeichnis nicht wieder voll. Kann es sein, dass SESSION_FEinit dafür verantwortlich sein kann?
Wie ich jetzt gesehen habe, scheint der Bot von yandex auf der Seite amok zu laufen. 98% der Seitenanfragen kommen von folgendem Programm:
Code: Select all
Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
Kann ich SESSION_FEinit (und frontend_edit) wieder aktivieren, wenn ich yandex im array von 'BOTS' ergänze?
Und was müsste ich dafür dort eintragen? Einfach nur 'yandex' ?
Re: yandex-Bot läuft Amok
Posted: Wed 5. Nov 2014, 08:11
by Oliver Georgi
Ob nun der YandexBot Amok läuft, würde ich bezweifeln. Es ist eher, dass Dein Provider die Releasezeit für Sessions nicht sauber setzt und so die Daten zu lange vorgehalten werden. Parallel würde ich darauf tippen, dass Du die Session mit Werten irre vollbretterst, also überlege mal, was dort abgeht. In einer normalen Installation sind die Sessions nicht größer als 1KB. Das würde also heißen, dass der Yandex-Bot bei Dir irgendwie um 100.000 Sessions öffnen würde, irgendwie zu bezweifeln. Hier kommt also sicher mehreres zusammen.
Yandex nehme ich mal mit in die Botliste auf, auch Baidu.
Zum Testen probiere mal folgendes frontend_render Script — als letztes der dort befindlichen ausführen, falls Du dort mehr mit den Sessions anstellst.
Code: Select all
<?php
// example.com/index.php?whatever&varsize=1
function sizeofvar($var) {
$start_memory = memory_get_usage();
$tmp = unserialize(serialize($var));
return memory_get_usage() - $start_memory;
}
if(isset($_GET['varsize']) && isset($_SESSION)) {
$session_varsize = sizeofvar($_SESSION);
//dumpVar($session_varsize);
$content['all'] .= '<code>'.$session_varsize.'</code>';
}
?>
Re: yandex-Bot läuft Amok
Posted: Wed 5. Nov 2014, 08:34
by Oliver Georgi
Re: yandex-Bot läuft Amok
Posted: Wed 5. Nov 2014, 10:39
by top
Danke schon mal dafür.
Wenn ich das richtig verstehe, brauche ich erst mal nur yandex in der Botliste ergänzen und das System legt dann keine Sessions mehr für den Bot an, wenn ich das FEedit wieder aktiviere?
Habe zwischenzeitlich festgestellt, dass das auch bei zwei anderen meiner Seiten (noch nicht ganz so extrem) passiert. Für komplette Updates aller Kunden-Seiten habe ich eigentlich gerade keine Zeit.
Oliver Georgi wrote:Ob nun der YandexBot Amok läuft, würde ich bezweifeln. Es ist eher, dass Dein Provider die Releasezeit für Sessions nicht sauber setzt und so die Daten zu lange vorgehalten werden. Parallel würde ich darauf tippen, dass Du die Session mit Werten irre vollbretterst, also überlege mal, was dort abgeht. In einer normalen Installation sind die Sessions nicht größer als 1KB. Das würde also heißen, dass der Yandex-Bot bei Dir irgendwie um 100.000 Sessions öffnen würde, irgendwie zu bezweifeln. Hier kommt also sicher mehreres zusammen.
...
Mir fehlt da die Fachkompetenz um dir da widersprechen zu können. Selbst irgendwelche Werte in die Session "ballern" habe ich noch nie gemacht. Ich habe lediglich die 'SESSION_FEinit' für 'frontend_edit' in der Config aktiviert. Gut möglich, dass der Provider die erzeugten Dateien länger als nötig vorhält. Hier mal die Zugriffszahlen der ersten vier Novembertage:
Und hier die Tages-Übersicht vom Oktober in der man sieht wann es anfing:
Ich hoffe mal, dass ich den Bot mit der robots.txt beruhigt bekomme. Sonst haben wir unser Datenvolumen schon Mitte des Monats überschritten. Per .htaccess möchte ich den Bot nur ungern, da genau dieser Kunde viel in Russland unterwegs ist. Aber das ist kein Problem von phpwcms und gehört hier nicht weiter rein...
Re: yandex-Bot läuft Amok
Posted: Wed 5. Nov 2014, 11:14
by Oliver Georgi
mit Frontend Edit hat das erst mal nichts zu tun, nur Frontend Sessions. Edit geht nur, wenn im Backend eingeloggt.
Möglicherweise generiert in der Seite Inhalt/Script immer neue Links, sodass es zu immer mehr Inhalt kommt und der Bot sich aufschaukelt.
Re: yandex-Bot läuft Amok
Posted: Wed 5. Nov 2014, 12:22
by top
Frontend Edit habe ich auch nur als Erklärung ergänzt warum ich die Frontend Sessions nutze. Oder kann man Frontend Edit auch ohne aktivierten Frontend Sessions nutzen?
Auf den Seiten auf denen ich das aktivier habe wüsste ich keine Scripte die zusätzliche Links erzeugen. Lediglich (bei aktivem Frontend Sessions) wird ein Parameter beim ersten Seitenbesuch hinter sämtliche Links ergänzt.
Aus z.B. "kontakt.html" wird dann "kontakt.html?PHPSESSID=langerKryptischerWert1234567890"
Wenn du möchtest, schicke ich dir per PN die Namen der drei betreffenden Domains. Ich möchte nicht, dass sich die Kunden hier irgendwann zufällig entdecken, dass ich da ein Problem mit ihrer Seite hatte.
Re: yandex-Bot läuft Amok
Posted: Wed 5. Nov 2014, 14:11
by Oliver Georgi
dann hast Du Dein Problem. Dein Provider wird session.use_trans_sid auf 1 eingestellt haben (never use). Somit sieht JEDER Bot bei JEDEM neuen Seitenaufruf NEUE Links, solange dieser den PHPSESSID GET-Wert nicht herausfiltert und verwirft. Deswegen bläst sich das immer weiter auf.
http://php.net/manual/de/session.idpassing.php
http://php.net/manual/de/session.configuration.php
Code: Select all
session.use_trans_sid = 0
session.use_only_cookies = 1
Re: yandex-Bot läuft Amok
Posted: Wed 5. Nov 2014, 15:37
by top
Fein, session.use_trans_sid stand tatsächlich auf "1".
session.use_only_cookies wird mir (warum auch immer) von phpinfo als "On" angezeigt. Ich werte das mal als richtig gesetzt und belasse es so.
Zum Glück gibt es bei dem Provider die Möglichkeit eine globale php.ini für alle Seiten zu setzen.
Dann will ich mal hoffen, dass der Spuk damit beendet ist. Ich denke hoffentlich daran in ein paar Tagen hier rein zu schreiben ob es jetzt funktionuckelt.
Grüße
top
PS:Da es hier keinen "Danke"-Knopf gibt, bist Du jetzt mein persönlicher Held der Woche.
Re: yandex-Bot läuft Amok
Posted: Fri 7. Nov 2014, 06:13
by juergen
Oliver ist immer mal für eine Überraschung gut. Ich habe halt auch nur Angst dass der Danke Knopf den Server abschalten könnte