Reguläre Ausdrücke für Chat und Nachrichten

pchilfe

Erfahrenes Mitglied
Liebe Freunde,

Ich suche einen sicheren regulären Ausdruck für Chat und ein internes multilinguales Nachrichtensystem.

Anforderung:
Es soll alles erlaubt sein, sonder Zeichen und verschiedene Sprachen.
vorrausgesetzt, dass der reguläre Ausdruck sicher sein muss.

Der reguläre Ausdruck wird eingesetzt, damit es keiner versucht, duch die Eingabeformularen auf der Webseite, die Datenbank abfragt.

Kann bitte jemand mir hilfen.

Der Ausdruck funktioniert nicht: '#^[0-9a-z-A-Z-_-ä-Ä-ö-Ö-ü-Ü-ñ-*]*$#'

Gruß ..
pchilfe
 
Multilingual, das heisst bestimmt UTF8 ..

Dann wirst du mit den Ä's und den Ü's nicht weit kommen.
Ich bin mir nämlich ziemlich sicher das preg_match nicht multibytesicher ist
und ein Ä in UTF8 ist ein Multibytezeichen, sprich zwei Bytes für eine Stelle.

Wegen der DB Abfrage, mach einen mysql_real_escape_string() und du
bist schonmal ein ganzes Stück sicherer. Nimm halt kein ' oder " an im Feld
und dann passt das. Halbwegs :)
 
Der Ausdruck funktioniert nicht: '#^[0-9a-z-A-Z-_-ä-Ä-ö-Ö-ü-Ü-ñ-*]*$#'
Diese komische Form kann auch nicht wirklich funktionieren.
Schon mal nachgeschaut was das - Zeichen bedeutet ?

Es soll alles erlaubt sein, sonder Zeichen und verschiedene Sprachen
Hmmm, dann brauchste auch kein Regex, wozu auch wenn alle Zeichen erlaubt sind :-)

Der reguläre Ausdruck wird eingesetzt, damit es keiner versucht, duch die Eingabeformularen auf der Webseite, die Datenbank abfragt.
Bitte ?
Überleg mal ganz genau was du hier geschrieben hast.
Wenn alle Zeichen erlaubt sind, kann ich auch HTML-Code mit einschleusen oder ein Buffer Overflow verursachen.

Das mit Sonderzeichen etc... würde ich mir nochmal überlegen.
 
Hallo Freunde,

Vielen Dank für euere Antworten und Tipps.

Können die folgenden Funktionen in einem Chat eine 100% Sicherheit gegen Injektion einer SQL-Abfrage bieten, oder gibt es vielleicht noch ein Schritt was ich nicht kenne:

Code:
strip_tags($Eingabe);
stripslashes($Eingabe);
mysql_real_escape_string($Eingabe);

In PHP.ini ist magic_quotes_gpc aktiviert und habe die Eingabe mit "maxlength=250" und mit dem Regulären Ausdruck '#^.{0,250}$#s' eingeschränkt.

Gruß ..
pchilfe
 
Zurück