Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ai đó đã hack cơ sở dữ liệu của tôi - làm thế nào?

mysql_real_escape_string

Như được giải thích ở đây: mysql_real_escape_string () CÓ bảo vệ HOÀN TOÀN khỏi việc chèn SQL không?

Dựa trên đoạn mã của bạn, bạn đã kết nối cơ sở dữ liệu hai lần.

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

Và bạn đã không cung cấp mã định danh liên kết cơ sở dữ liệu cho:

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

Do đó, mysql_set_charset không ảnh hưởng đến lối thoát thực được cung cấp $_POST cho các ký tự nhiều byte.

Đề xuất

  • xóa mysql_connect($db_host,$username,$password);
  • thêm $db_con một cách rõ ràng khi thực hiện 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. Cách trả về các hàng có cùng giá trị cột trong MySql

  2. Java - Lấy dữ liệu từ cơ sở dữ liệu MySQL

  3. CÁC KHÓA CHÍNH CỦA MySQL:UUID / GUID so với BIGINT (dấu thời gian + ngẫu nhiên)

  4. Gặp lỗi 1366 Giá trị số nguyên không chính xác:'1' khi nhập tệp

  5. Chọn tất cả nơi [chữ cái đầu tiên bắt đầu bằng B]