yandex-Bot läuft Amok

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

yandex-Bot läuft Amok

Post 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' ?
User avatar
Oliver Georgi
Site Admin
Posts: 9907
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: yandex-Bot läuft Amok

Post 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>';
    
}
?>
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
Oliver Georgi
Site Admin
Posts: 9907
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: yandex-Bot läuft Amok

Post by Oliver Georgi »

Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

Re: yandex-Bot läuft Amok

Post by top »

Oliver Georgi wrote:...

Yandex nehme ich mal mit in die Botliste auf, auch Baidu.

...

Lösung:
https://github.com/slackero/phpwcms/com ... df506096ef
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:
Image

Und hier die Tages-Übersicht vom Oktober in der man sieht wann es anfing:
Image

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...
User avatar
Oliver Georgi
Site Admin
Posts: 9907
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: yandex-Bot läuft Amok

Post 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.
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

Re: yandex-Bot läuft Amok

Post 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. :roll:
User avatar
Oliver Georgi
Site Admin
Posts: 9907
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: yandex-Bot läuft Amok

Post 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
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
top
Posts: 535
Joined: Fri 11. Aug 2006, 15:03
Location: Eutin

Re: yandex-Bot läuft Amok

Post by top »

Fein, session.use_trans_sid stand tatsächlich auf "1". Image
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. Image
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: yandex-Bot läuft Amok

Post 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 ;)
Post Reply