Aug 14, 2009

Lỗi của MySQL trong việc thực hiện câu truy xuất

Lỗi của MySQL khi thực hiện câu query để truy xuất dữ liệu bạn bên chú ý.

Ở đây tôi tạo một database có table tên là "loginUser"
trong table nay toi co các cột là "clmId","clmUserName","clmPassword".

Tôi thực hiên câu truy xuất sau:

select * from loginUser.tblUser where clmUserName=’’*’’

Bằng việc sử dụng dấu * tôi đã có thể loại trừ mệnh đề where trong câu truy xuất trên.
Việc thực hiện như thế sẽ gây đến một nguy hiểm với việc thực hiện câu truy xuất kiểu add chuỗi sơ đẳng
EX:
Nếu bạn check login bằng cách sau

select * from loginUser.tblUser where clmUserName=’"
+username+"’ and clmPassword=’"+password+"’.

Khi đó với lỗi trên người sử dụng có thể vượt wa phần login bằng việc nhập username và password là: "’*’" (bỏ giấu ngoặc kép).
Nếu mà bạn bọc lỗi kiểm tra độ của password thì cũng vẫn nên coi trừng vì "’*’’*’’*’"(bỏ giấu ngoặc kép).cũng có tác dụng tương tự

Agrond