sql >> Databáze >  >> RDS >> Mysql

Někdo se naboural do mé databáze – jak?

mysql_real_escape_string

Jak je vysvětleno zde:Ochraňuje mysql_real_escape_string() PLNĚ před SQL injection?

Na základě vašeho fragmentu kódu jste připojili databázi dvakrát.

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

A nezadali jste identifikátor odkazu na databázi pro :

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

Proto mysql_set_charset nemá žádný vliv na dodaný skutečný escape$_POST pro vícebajtové znaky.

Návrh

  • odstraňte druhý mysql_connect($db_host,$username,$password);
  • explicitně přidejte $db_con při provádění mysql_real_escape_string


  1. Jak velká může být databáze MySQL, než začne klesat výkon

  2. 3 způsoby, jak vrátit počet řádků v každém oddílu na serveru SQL (T-SQL)

  3. Jak obnovit databázi z C#

  4. Ukládání cesty k souboru do databáze / SQL