Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Jemand hat meine Datenbank gehackt – wie?

mysql_real_escape_string

Wie hier erklärt:Schützt mysql_real_escape_string() VOLLSTÄNDIG vor SQL-Injection?

Basierend auf Ihrem Code-Snippet haben Sie die Datenbank zweimal verbunden.

$db_con=mysql_connect($db_host,$username,$password);    

$connection_string=mysql_select_db($db_name);
mysql_connect($db_host,$username,$password);    
mysql_set_charset('utf8',$db_con); 

Und Sie haben die Datenbank-Link-ID für :

nicht angegeben
$email= mysql_real_escape_string($_POST['email']);
$name= mysql_real_escape_string($_POST['name']);
$sex= mysql_real_escape_string($_POST['sex']); 

Daher hat mysql_set_charset keine Auswirkung auf das bereitgestellte echte Escape $_POST für Multibyte-Zeichen.

Vorschlag

  • Entfernen Sie den zweiten mysql_connect($db_host,$username,$password);
  • fügen Sie explizit $db_con hinzu beim Ausführen von mysql_real_escape_string