Google und surp toben sich bei mir aus - bis in zum Forenausfall

Support zum phpBB2 und zu MODs anderer Autoren.

Moderator: Supporter

Google und surp toben sich bei mir aus - bis in zum Forenausfall

Beitragvon snobbel » 22. Jun 2007 12:12

Seit ca 2 Wochen wird mein Forum (ca 300 Mitglieder, ca 50 aktive) von oben genannten Bots "belagert".
In meinem Referrer sind keine kuriosen Adressen verzeichnet, von denen man auf mein Forum kommt, von daher schliesse ich eine Spammerliste auf die mein Forum evtl. gekommen sein könnte aus.
Allerdings laden Slurp und Google ca alle 1-2 Sekunden neue Seiten und bis zum Ausfall des Forums ("cannot create new session") waren ca 1200 User online, zuerst passierte ein Ausfall 1 mal die Woche, inzwischen musste ich die sessions innerhalb von 13 Stunden zweimal leeren, da das Forum ausfiel.
Anbei noch Screenshots - heute aufgnommen....
Eine Codeveränderung, welche das automatische leeren der letzten 5o rows vornimmt habe ich bereitseingebaut - ohne Erfolg...
Dateianhänge
Benutzeravatar
snobbel
User
 
Beiträge: 40
Registriert: 5. Mär 2007 22:07
Wohnort: Dinslaken

Beitragvon Pino » 22. Jun 2007 12:41

Simple Sache: Für Gäste (also auch Google und Co) wird keine Session erzeugt:

Öffne die /includes/sessions.php und suche:
Code: Alles auswählen
$SID = 'sid=' . $session_id;


ersetzte es mit:
Code: Alles auswählen
if ( $userdata['session_user_id'] != ANONYMOUS || $userdata['session_page'] == -4 || $userdata['session_page'] == -2 ){
   $SID = 'sid=' . $session_id;
} else {
   $SID = '';
}


suche:
Code: Alles auswählen
$SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';


und ersetze mit:
Code: Alles auswählen
if ( $userdata['session_user_id'] != ANONYMOUS || $userdata['session_page'] == -4 || $userdata['session_page'] == -2 ){
$SID = ($sessionmethod == SESSION_METHOD_GET || defined('IN_ADMIN')) ? 'sid=' . $session_id : '';
} else {
$SID = '';
}


Das wars...
Benutzeravatar
Pino
 
Beiträge: 9
Registriert: 8. Jun 2007 12:44
Wohnort: Stuttgart

Beitragvon AmigaLink » 22. Jun 2007 14:51

Richtig, das sollte schon mal Helfen. :)

Ansonsten kann ich auch bestätigen das Google und vor allem Slup momentan mal wieder sehr aggressiv vorgehen. Bei mir sind die beiden schon seit Jahren jeweils mit 3-10 Spidern (auf EmF) als Dauergast unterwegs. Zur Zeit ist es aber nicht selten das sie jeweils mit weit über 50 Spidern am Werkeln sind. :shock:
An und für sich ist das ja ein ganz gutes Zeichen. Aber der Server wird dadurch natürlich erheblich Belastet. Wo drunter logischerweise auch die Performance des Boards leidet, was ja auch nicht unbedingt Wünschenswert ist.
Wenn ich merke das dies geschieht (bei mir zum Glück mittlerweile eher selten), Banne ich die BOTs (vorzugsweise Slurp) mit Hilfe von Bantron für ein paar Stunden. Und zwar zu den Zeiten in denen sich meine User meistens umsehen. :)

Zugefügt nach 3 Minute(n):

Und so sachen wie die privmsg.php und den Kalender solltest du evtl. noch in die robots.txt aufnehmen.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon snobbel » 22. Jun 2007 16:28

Ich werd den Code mal ausprobieren!!
Auf jeden Fall danke für die Antworten!!!
Es nervt halt, wenn alle paar Stunden das Forum komplett ausfällt...

Was meinst Du denn mit robot.txt mit aufnehmen?
Habe so eine gar nicht und kann auch gerade im phpbb Forum nichts nachlesen, da es seit heute morgen nicht mehr (bei mir?!?) funktioniert...

Den Bantron habe ich auch - wusste gar nicht, dass man die Bots damit auch temporär sperren kann! :)


Edit:
Also ich habe die Codes eingebunden - und komme seitdem nicht mehr ins ACP, wenn ich es anklicke öffnet sich das Forum, lade ich die "alte" sessions.php wieder hoch funktioniert es.... :?

Edit vom Edit:
Jetzt geht es, mal sehen on ich bald wieder die session leeren muß...brauch ja nur noch 500 Gäste und der Erfahrung halber müssten sie gegen 21 Uhr erreicht sein!
Gebe Rückmeldung!
:)
Benutzeravatar
snobbel
User
 
Beiträge: 40
Registriert: 5. Mär 2007 22:07
Wohnort: Dinslaken

Beitragvon Area51 » 22. Jun 2007 17:25

Im aktuellen Orion ist ein kleines Snippet drin, dass alle Einträge, die älter als 86400 Sekunden sind, automatisch entfernt werden. Allerdings weiß ich nicht, welche Datei das ist...
müsste da mal suchen ;)
Area51
User
 
Beiträge: 61
Registriert: 20. Mai 2007 13:16
Wohnort: Heidelberg

Beitragvon snobbel » 23. Jun 2007 09:15

Das wäre schön, wenn Du da was finden könntest - denn der oben genannte Code hat leider nichts gebracht, heute morgen lag wieder alles flach (nach ca 1250 Gastbesuchen)
Beim Hoster habe ich mich auch schon gemeldet, deren Datenbank hat keinen Schuß weg.... :cry: :cry:
Benutzeravatar
snobbel
User
 
Beiträge: 40
Registriert: 5. Mär 2007 22:07
Wohnort: Dinslaken

Beitragvon oxpus » 23. Jun 2007 10:45

Öhm, ich wüsste nicht, daß sowas im Orion drinnen wäre, finden kann ich es jedenfalls nicht.
Aber hier gibts einen interessanten MOD zum Thema:
http://www.phpbb.com/mods/db/index.php? ... rib_id=151
Kein Support ausserhalb der Foren!
No support outside the forums!
Benutzeravatar
oxpus
Partner
 
Beiträge: 610
Registriert: 14. Okt 2004 11:55
Wohnort: Bad Wildungen (halt so'n kleines Kurkaff)

Re: Google und surp toben sich bei mir aus - bis in zum Forenausf

Beitragvon snobbel » 23. Jun 2007 10:51

snobbel hat geschrieben:Eine Codeveränderung, welche das automatische leeren der letzten 5o rows vornimmt habe ich bereitseingebaut - ohne Erfolg...


Hatte ich doch schon.... :?

Edit:
Ich sehe gerade, dass es ein anderer ist, werd ihn mal probieren!
Benutzeravatar
snobbel
User
 
Beiträge: 40
Registriert: 5. Mär 2007 22:07
Wohnort: Dinslaken

Beitragvon AmigaLink » 23. Jun 2007 11:51

Ist deine Sessions-Tabelle vom Typ HEAP oder MyISAM :?:
Ich nutze bei beiden Boards HEAP und habe, wie gesagt, keinerlei Probleme.
Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
Benutzeravatar
AmigaLink
Administrator
 
Beiträge: 3987
Registriert: 11. Aug 2004 01:06
Wohnort: NRW

Beitragvon Area51 » 23. Jun 2007 12:20

Ich habs gefunden :D

Wenn du den CTracker 5 eingebaut hast, benutze bitte diese Änderung:

Code: Alles auswählen
#
#-----[ OPEN ]------------------------------------------
#
common.php

#
#-----[ FIND ]------------------------------------------
#
// Obtain and encode users IP
//
// I'm removing HTTP_X_FORWARDED_FOR ... this may well cause other problems such as
// private range IP's appearing instead of the guilty routable IP, tough, don't
// even bother complaining ... go scream and shout at the idiots out there who feel
// "clever" is doing harm rather than good ... karma is a great thing ... :)
//
$client_ip = ( !empty($HTTP_SERVER_VARS['REMOTE_ADDR']) ) ? $HTTP_SERVER_VARS['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : getenv('REMOTE_ADDR') );
$user_ip = encode_ip($client_ip);
// CrackerTracker v5.x
include($phpbb_root_path . 'ctracker/engines/ct_varsetter.' . $phpEx);
include($phpbb_root_path . 'ctracker/engines/ct_ipblocker.' . $phpEx);

#
#-----[ AFTER, ADD ]------------------------------------------
#
$autodel=time()-(60*60*24);
$sql = 'DELETE FROM ' . SESSIONS_TABLE . ' WHERE `session_user_id`=-1 AND `session_start`<'.$autodel;
if (!($result = $db->sql_query($sql)))
{
   message_die(CRITICAL_ERROR, 'Error doing DB query session row fetch', '', __LINE__, __FILE__, $sql);
}


andernfalls:

Code: Alles auswählen
#
#-----[ OPEN ]------------------------------------------
#
common.php

#
#-----[ FIND ]------------------------------------------
#
// We do not need this any longer, unset for safety purposes
unset($dbpasswd);

#
#-----[ AFTER, ADD ]------------------------------------------
#
$autodel=time()-(60*60*24);
$sql = 'DELETE FROM ' . SESSIONS_TABLE . ' WHERE `session_user_id`=-1 AND `session_start`<'.$autodel;
if (!($result = $db->sql_query($sql)))
{
   message_die(CRITICAL_ERROR, 'Error doing DB query session row fetch', '', __LINE__, __FILE__, $sql);
}
Area51
User
 
Beiträge: 61
Registriert: 20. Mai 2007 13:16
Wohnort: Heidelberg

Nächste

Zurück zu phpBB2 Support



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 16 Gäste

cron