sql >> Database teknologi >  >> RDS >> Mysql

Nogen har hacket min database - hvordan?

mysql_real_escape_string

Som forklar her :Beskytter mysql_real_escape_string() FULDSTÆNDIG mod SQL-injektion?

Baseret på dit kodestykke har du tilsluttet databasen to gange.

$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); 

Og du har ikke angivet databaselink-id'et for :

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

Derfor har mysql_set_charset ingen effekt på real escape leveret$_POST for multi-bytes tegn.

Forslag

  • fjern den anden mysql_connect($db_host,$username,$password);
  • tilføj eksplicit $db_con når du laver mysql_real_escape_string


  1. DB-kontrol nærmer sig sin død

  2. Hvad betyder SQL Select-symbol || betyde?

  3. Sådan fremstilles en csv-outputfil fra lagret procedure i SQL Server

  4. Oracle vælg seneste datopost