|
(PHP 4 >= 4.3.0, PHP 5)
mysql_real_escape_string -- Maskiert spezielle Zeichen innerhalb eines Strings für die Benutzung in einer SQL-Anweisung
Zeichenkette, die maskiert werden soll
Eine MySQL Verbindungsressource
Diese Funktion maskiert spezielle Zeichen in unescaped_string, unter Berücksichtigung des aktuellen Zeichensatzes der Verbindung, zur sicheren Benutzung in mysql_query(). Falls Sie vorhaben, binäre Daten einzufügen, müssen Sie diese Funktion benutzen.
mysql_real_escape_string() ruft die MySQL Bibliotheksfunktion mysql_escape_string auf, diese stellt den folgenden Zeichen einen Backslash voran: NULL, \x00, \n, \r, \, ', " und \x1a.
Bevor Sie eine Anfrage an MySQL absetzten, müssen Sie immer diese Funktion verwenden (mit einigen Ausnahmen), um Ihre Daten sicher zu machen. Falls Sie magic_quotes_gpc aktiviert haben und mit Daten aus Benutzereingaben arbeiten, müssen Sie vorher Ihre Daten mit stripslashes() behandeln. Falls Ihre Daten aus anderen Quellen stammen und Sie magic_quotes_runtime aktiviert haben, müssen Sie ebenfalls Ihre Daten mit stripslashes() behandeln. Falls Sie diesen Rat nicht beherzigen, ist Ihre Anwendung anfällig für SQL Code-Einschleusung. Hier ein Beispiel:
Beispiel 2. Ein Beispiel für SQL Code-Einschleusung
Gesendete Anfrage an MySQL:
Diesers Vorgehen würde es jeder beliebigen Person erlauben, sich ohne gültiges Passwort einzuloggen! Bei der Verwendung von mysql_real_escape_string() für jede Variable wird dies verhindert.
Die Anfrage wird nun korrekt ausgeführt und Code-Einschleusung ist nicht mehr möglich. |
Anmerkung: Die Zeichen % und _ werden von mysql_real_escape_string() nicht maskiert. Diese Zeichen sind für MySQL Platzhalter, wenn sie zusammen mit LIKE, GRANT, oder REVOKE benutzt werden.
Siehe auch: mysql_client_encoding(), addslashes(), stripslashes(), die magic_quotes_gpc und die magic_quotes_runtime Einstellung.
Zurück | Zum Anfang | Weiter |
mysql_query | Nach oben | mysql_result |
Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:57:18