addslashes vs mysql_real_escape_string?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beitrag
benutzer
dank
funktion
leitung
manual
nutzen
sichere anfrage
sichere verwendung
user
username
variable
-
Also ich steh derzeit etwas auf der Leitung, bisher hab ich immer bei Mysql Abfragen die von Benutzern kommen folgendes angewendet.
addslashes(htmlentities($_POST['bla']))
Soll ich jetzt auch noch mysql_real_escape_string darauf anwenden oder nicht?! Hab gegoogelt und die einen verwenden addslashes und die anderen mysql_real_escape_string.
W?re nett wenn da einer f?r Aufkl?rung sorgen k?nnte.
Dank? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
ich w?rde addslashes nicht verwenden.
Verwende besser einfach nur mysql_real_escape_string. Es sollte so reichen:
$var = mysql_real_escape_string(htmlentities($_POST['bla'])) ;
Alles klar?
mfg,
hr -
http://de2.php.net/manual/de/function.mysql-real-escape-string.php
Einfach mit der Funktion sprintf() den query formatieren und gleichzeitig mit der funktion quote_smart sichern
/** * Variable f?r sichere Verwendung quotieren */ function quote_smart($value) { // stripslashes, falls n?tig if (get_magic_quotes_gpc()) { $value = stripslashes($value); } // quotieren, falls kein integer if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } // verbinden $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password') OR die(mysql_error()); // sichere Anfrage formulieren $query = sprintf("SELECT * FROM users WHERE user=%s AND password=%s", quote_smart($_POST['username']), quote_smart($_POST['password'])); mysql_query($query);
Beitrag ge?ndert am 2.02.2006 00:45 von janbaier -
Hiho,
man sollte die Funktion "mysql_real_escape_string ()" nutzen, da es sie daf?r gibt und Zeichen entwertet, die die Funktion "addslashes ()" nicht entwertet. Wenn du wissen m?chtest, welche es sind, dann frag alopex.
heavyraptor :
Wieso benutzt du die Funktion "htmlentities ()"?
Die sollte man benutzen, wenn man etwas ausliest, nicht beim Eintragen.
MfG Lucas -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage