Seite 1 von 1

'search flood control' / 'versuche es in Kürze erneut'

Verfasst: 19.04.2006 19:12
von mgutt
Hallo,

Wenn ich eins jetzt schon haße, dann ist es diese Meldung:
Du kannst keine weitere Suche so schnell nach deiner letzten durchführen. Bitte versuche es in Kürze erneut.
Ich kann wirklich auf jegliche Sicherheitsupdates verzichten, die einem so eine Meldung auftischen, obwohl man nur den "zurück"-Button im Browser benutzt hat.

Verdanken tun wir das dem Update auf 2.0.20 und diesem Feature:
[Sec] Added configurable search flood control to reduce the effect of DoS style attacks
Ich empfehle phpBB.de diese Änderung zu berücksichtigen:
http://www.phpbb.de/viewtopic.php?t=92252

Der Hund liegt nämlich im Caching der Seite begraben und nirgends anders. Der Internet Explorer zeigt beim vor und zurück nur das:
Achtung: Seite ist nicht mehr gültig Die angeforderte Seite wurde mit Hilfe von Informationen erstellt, die von Ihnen in einem Formular mitgeteilt wurden. Diese Seite ist nicht mehr verfügbar. Als Sicherheitsmaßnahme übermittelt Internet Explorer solche persönlichen Informationen nicht automatisch erneut.

Falls Sie die Seite ansehen und die Informationen erneut mitteilen möchten, klicken Sie auf Aktualisieren.
Und mit meinen lokalen Einstellungen hat das nichts zu tun. Übrigens entlastet es ungemein die CPU, wenn ein User nicht andauernd aktualisieren muss, wenn eine Seite doch gecached wird.

Also liebes Team von phpBB.de. Wechselt mal kurz auf den Internet Explorer und schaut euch an, was ihr einem armen IE Nutzer so alles antut.

Danke für die Aufmerksamkeit!

P.S. wann es zu ungewollten Meldungen kommt:
- EGO-Search -> Seite 2 oder Topic auswählen und dann "zurück" im Browser
- Suche mit Keyword -> Seite 2 oder Topic auswählen und dann "zurück" im Browser

Verfasst: 20.04.2006 08:59
von cback
Huhu,

das Suchschutz Feature von phpBB2.0.20 kannst Du im ACP abstellen wenn Du als Sperrzeit "0" einträgst. Ich empfehle für Suchschutz und vielen anderen Schutz meinen CrackerTracker: http://www.cback.de/cback_software/modd ... sional.zip

Ich löse das mit der Suche seit phpBB 2.0.8 z.B so, dass Flooder keine Chance haben, aber dennoch die User nicht belästigt werden. Hier wird das so gelöst, dass Gäste immer die Zeitsperre bekommen, aber registrierte eine von Dir eingestellte Zahl von Suchanfragen innerhalb einer bestimmten Zeit ausführen dürfen bevor sie dann erst gesperrt werden.

Setzt man z.B die Zeit auf 30 Sekunden und die Anfragen auf 4, so müssen Gäste zwischen Suchen immer 30 Sekunden warten, eingeloggten dürfen aber innerhalb 30 Sekunden 4 Suchabfragen starten bevor sie dann für 30 Sekunden gesperrt werden.

Mit dieser Einstellung tappt eigentlich kein Registrierter in die Suchfalle. ;)

Verfasst: 20.04.2006 11:53
von mgutt
Das man diese Sperrzeit deaktivieren kann ist mir bekannt. Es geht darum, dass ich es als Fehler empfinde, wenn ich "zurück" drücke und eine leere Seite oder eine Sperrseite vorfinde.

Hauptsächlich liegt es am Caching der Seiten.

Und über kurz oder lang wird so eine Einstellung die User verscheuchen.

Denk doch mal nur an die User die sich verklicken (falscher Link, schnell zurück, FEHLER). Sowas ist frustrierend.

Weiterhin finde ich Deine Idee löblich, denn registrierte User sind wohl eher die letzten die eine Floodattacke auslösen.

Aber ich bin trotzdem absolut dagegen. Stell Dir mal vor Du gehst auf Google und wechselst zwischen den Seiten und erhälst eine leer Seite oder Du bekommst die Meldung, dass Du in 30 Sekunden eine neue Suche starten kannst :lol:

P.S. Dieses Problem ist vom Browser abhängig. Bei Firefox hat man dieses Problem nicht. Vielleicht auch ein Grund, warum hier so viele User Firefox benutzen. Auf meinen Seiten ist der Schnitt jedenfalls weit aus geringer :-?

Verfasst: 12.05.2006 15:30
von mgutt
Rein suchmaschinentechnisch ist dieser Floodintervall ziemlicher Müll:
http://www.google.de/search?q=Du+kannst ... art=0&sa=N

Die Ergebnisse wachsen täglich :roll:

Also raus damit. Öffne search.php und suche nach:

Code: Alles auswählen

		//
		// Flood control
		//
		$where_sql = ($userdata['user_id'] == ANONYMOUS) ? "se.session_ip = '$user_ip'" : 'se.session_user_id = ' . $userdata['user_id'];
		$sql = 'SELECT MAX(sr.search_time) AS last_search_time
			FROM ' . SEARCH_TABLE . ' sr, ' . SESSIONS_TABLE . " se
			WHERE sr.session_id = se.session_id
				AND $where_sql";
		if ($result = $db->sql_query($sql))
		{
			if ($row = $db->sql_fetchrow($result))
			{
				if (intval($row['last_search_time']) > 0 && ($current_time - intval($row['last_search_time'])) < intval($board_config['search_flood_interval']))
				{
					message_die(GENERAL_MESSAGE, $lang['Search_Flood_Error']);
				}
			}
		}
ersetze gegen:

Code: Alles auswählen

/*
		//
		// Flood control
		//
		$where_sql = ($userdata['user_id'] == ANONYMOUS) ? "se.session_ip = '$user_ip'" : 'se.session_user_id = ' . $userdata['user_id'];
		$sql = 'SELECT MAX(sr.search_time) AS last_search_time
			FROM ' . SEARCH_TABLE . ' sr, ' . SESSIONS_TABLE . " se
			WHERE sr.session_id = se.session_id
				AND $where_sql";
		if ($result = $db->sql_query($sql))
		{
			if ($row = $db->sql_fetchrow($result))
			{
				if (intval($row['last_search_time']) > 0 && ($current_time - intval($row['last_search_time'])) < intval($board_config['search_flood_interval']))
				{
					message_die(GENERAL_MESSAGE, $lang['Search_Flood_Error']);
				}
			}
		}
*/

Verfasst: 12.05.2006 17:02
von Pyramide
Oder einfach im ACP eine 0 eintragen

Verfasst: 12.05.2006 18:50
von mgutt
Das wäre möglich, aber die Abfrage wird dann trotzdem generiert.

Gruß

Verfasst: 12.05.2006 19:02
von S2B
mgutt hat geschrieben:Das wäre möglich, aber die Abfrage wird dann trotzdem generiert.
[ironie]Muss ja auch so sein, wenn der Flood-Filter bei phpBB direkt mitgeliefert wird. :wink: [/ironie]

Sorry, musste sein. *duck*