Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Alguém invadiu meu banco de dados - como?


mysql_real_escape_string

Como explicado aqui:O mysql_real_escape_string() protege TOTALMENTE contra injeção de SQL?

Com base no seu trecho de código, você conectou o banco de dados duas vezes.
$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); 

E você não forneceu o identificador de link do banco de dados para:
$email= mysql_real_escape_string($_POST['email']);
$name= mysql_real_escape_string($_POST['name']);
$sex= mysql_real_escape_string($_POST['sex']); 

Portanto, mysql_set_charset não tem efeito para escape real fornecido$_POST para caracteres de vários bytes.

Sugestão
  • remova o segundo mysql_connect($db_host,$username,$password);
  • adicionar explicitamente $db_con ao fazer mysql_real_escape_string