sql >> Databasteknik >  >> RDS >> Mysql

Någon har hackat min databas – hur?

mysql_real_escape_string

Som förklara här:Skyddar mysql_real_escape_string() HELT mot SQL-injektion?

Baserat på ditt kodavsnitt har du anslutit databasen två gånger.

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

Och du angav inte databaslänkidentifieraren för :

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

Därför har mysql_set_charset ingen effekt på real escape som tillhandahålls$_POST för tecken med flera byte.

Förslag

  • ta bort den andra mysql_connect($db_host,$username,$password);
  • lägg till $db_con uttryckligen när du gör mysql_real_escape_string


  1. MySQL:Räkna unika värdepar i rader

  2. PHP date('W') vs MySQL YEARWEEK(nu())

  3. Hur hittar man den största tabellen i MySQL-databasen?

  4. Slå samman överlappande datumintervall