Khi đã thành thạo lập trình PHP rồi thì cần phải quan tâm tới vấn đề bảo mật website, bảo mật websiet gồm nhiều yếu tố. Bảo mật database, bảo mật url, ...
Hôm nay, xin giới thiệu vè bảo mật database trong quá trình đăng nhập tài khoản.
Khi chúng ta truy cập CSDL và chaaso nhận dữ liệu đầu vào bằng cách tạo ra các câu lệnh truy vấn, nó dễ dàng bị các kẻ gian lợi dụng tấn công SQL injecttion. SQL injection xuất hiện khi các kẻ tấn công muốn làm các thử nghiệm trên form đề lấy các thông tin về CSDL. Nó thu thập các thông tin từ các thông báo lỗi SQL. Kẻ tấn công đinh vào form một trường injecting SQL, phổ biến nó thường đính vào form đăng nhập.
Code minh hoạ |
Khi kẻ tấn công nhập User là usernae ' OR 1 = 1 -
và mật khẩu để trống thì cấu trúc câu lệnh SQL là:
SELECT * FROM users WHERE username = 'username' OR 1 = 1- 'AND password ='d41d8cd98f00b204e9800998ecf8427e'
Điều kiện 1 =1 thì luôn đúng câu lệnh SQL bỏ qua tất cả những gì sau '-' vì vậy câu lệnh SQL sẽ trả lại tất cả các bản ghi. Bằng cách này kẻ gian dễ dàng đăng nhập vào hệ thống với tài khoản bất kỳ khi đã biết tên tài khoản.
Các bạn có thể tham khảo thêm về các khoá học php, lập trình drupal và thư viện tài liệu tại daotaolaptrinh.edu.vn
Các bạn có thể tham khảo thêm các khoá học lập trình tại : http://daotaolaptrinh.edu.vn/khoa-hoc.html
Trả lờiXóa