User-Eingaben einigermaßen absichern/abblocken

never trust a user
also hab ich mich schlau gemacht und mit mysql_real_escape_string() und htmlspecialchars() meine Usereingaben überprüft.
Ich weiß dass das jetzt sicher nicht genug ist, aber das reicht vorerst...

Jetzt würde ich nur noch gerne eine Sache machen, nämlich wenn sich einer Registrieren will, dann muss er Name, Angaben etc ausfüllen. Mit den oben genannten maßnahmen kann ich ja jetzt einigermaßen sicher gehen, dass der keine (wenig) sql befehle und oder php/html tags reinschmeißt. Aber ich möchte dann auch nicht unbedingt einen user haben, dessen Name aus entschärften tags und escapten Zeichen besteht.

Wenn jetzt jemand da so schlau ist und php o html Befehle reinschriebt, zB

<b>blöd</b>
SQL="SELECT alle meine wichtigen Daten";
...
alert(meine wichtigen Daten)

ich weiß, blöder gehts nicht aber da is bisschen was von allem drin. Wie kann ich machen dass das nicht nur entschärft wird, sondern auch gar nicht angenommen wird?

Ic dachte an reguläre ausdrücke...aber da kenn ich mich zu wenig aus. Kann ich das überhaupt mit denen lösen?
 
Wo ist das Problem? Wenn einer so doof ist, und sich so einen Namen verschaffen will (sicherlich nicht gerade mit guten Absichten), dann muss man ihm doch eigentlich nicht den Gefallen tun, das ganze schön zu machen, sondern dann hat er eben Pech, wenn er "<b>blöd</b>" heißt *fg

Ansonsten könntest du im einfachsten Fall die Wahl der Zeichen beschränken, wie es für Nicknames ja auch vielerorts gemacht wird. Zum Beispiel könntest du nur Buchstaben, Zahlen, Leerzeichen und Bindestriche erlauben. Darauf kannst du dann ein einfaches preg_match() anwenden, was rausfindet, ob andere Zeichen im Nick vorkommen und dann einen Fehler generiert.
 
Zurück
Oben