Seite 1 von 1

Sicherheit durch phpbb-prepare_message in eigenem script?

Verfasst: 21.12.2006 00:10
von Xwitz
Hallo, ich brauche Hilfe von jemandem, der in den Funktionen von phpbb drin steckt.

Ich wollte mir abschauen, wie phpbb die Nachricht vor dem Speichern aufbereitet um sql-Injection u.ä zu unterbinden, aber ich sehe in den vielen Funktionen, Variablen und Dateien nicht durch. Also habe ich mir überlegt, die Funktionen direkt zu nutzen (für ein eigenes Script, in einer in phpbb eingebundenen Seite, die Texte werden in einer eigenen Tabelle gespeichert, kein bbcode o.ä.).

Nur reicht es das:

Code: Alles auswählen

...
include($phpbb_root_path . 'includes/functions_post.'.$phpEx);
...
$message = prepare_message(trim($message), '', '', '', '');
...
oder lasse ich dann was entscheidendes aus?

Verfasst: 21.12.2006 09:39
von Dr.Death
Hi,

prepare_message wird nur genutzt um HTML, BBCODE, SMILIES usw vorzubereiten.

ein zusätzliches "trim" ist nicht erforderlich, da in der Funktion bereits ein:

Code: Alles auswählen

	//
	// Clean up the message
	//
	$message = trim($message);
enthalten ist.

Verfasst: 21.12.2006 18:02
von Xwitz
Das heißt dann wohl, daß es nicht reicht.

Verfasst: 22.12.2006 14:42
von gn#36
Es gibt da eine sehr ähnlich lautende Funktion namens prepare_post die du dir vielleicht anschauen solltest. Die benutzt auch prepare Message. prepare_message ist sicher nicht falsch.

Verfasst: 22.12.2006 19:28
von Xwitz
Über die Funktion prepare_post bin ich erst auf die prepare_message gestoßen und soweit ich sehe, macht die Funktion mit $message nur eins, sie durch die Funktion prepare_message zu schicken. Ich kann zumindest nicht erkennen, wie in einer von den beiden Funktionen eine sql injections verhindert wird.

Ich verwende bisher unter anderem mysql_real_escape_string (addslashes bei phpbb) aber das hat keinen Einfluß z.B. auf ";" und "--". Deshalb habe ich auch eine Whitelist für erlaubte Zeichen und ersetze mehr als einen Bindestrich am Stück aber das ist mir eigentlich zu restriktiv.