Mysql
 sql >> база данни >  >> RDS >> Mysql

Някой е хакнал моята база данни - как?

mysql_real_escape_string

Както обяснете тук:Защита ли mysql_real_escape_string() НАПЪЛНО срещу SQL инжектиране?

Въз основа на вашия кодов фрагмент сте свързали базата данни два пъти.

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

И не сте предоставили идентификатора на връзката към базата данни за :

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

Следователно mysql_set_charset няма ефект върху предоставеното реално escape$_POST за многобайтови символи.

Предложение

  • премахнете втория mysql_connect($db_host,$username,$password);
  • добавете изрично $db_con когато правите mysql_real_escape_string


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 начина за връщане на редове, които съдържат буквено-цифрови знаци в MySQL

  2. Създаване на временни таблици в MySQL Stored Procedure

  3. Как {} влияе на MySQL заявка в PHP?

  4. MySQL низови функции (пълен списък)

  5. PHP:Концепция за система за оценка със звезди?