Một cách đơn giản để kiểm tra lỗi website


Khi triển khai các ứng dụng web trên Internet, nhiều người vẫn nghĩ rằng việc đảm bảo an toàn, bảo mật nhằm giảm thiểu tối đa khả năng bị tấn công từ các tin tặc chỉ đơn thuần tập trung vào các vấn đề như chọn hệ điều hành, hệ quản trị cơ sở dữ liệu, webserver sẽ chạy ứng dụng... mà quên mất rằng ngay cả bản thân ứng dụng chạy trên đó cũng tiềm ẩn một lỗ hổng bảo mật rất lớn. Một trong số các lỗ hổng này đó là SQL injection.


SQL injection là một kĩ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng trong việc kiểm tra dữ
liệu nhập trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu để "tiêm vào"
(inject) và thi hành các câu lệnh SQL bất hợp pháp (không được người phát triển ứng dụng lường
trước). Hậu quả của nó rất tai hại vì nó cho phép những kẻ tấn công có thể thực hiện các thao tác
xóa, hiệu chỉnh...

Có một cách đơn giản để kiểm tra website của bạn có bị lỗi SQL injection hay không:
1. Mở trình duyệt và gõ vào địa chỉ website cần kiểm tra.
2. Tìm một đường dẫn nào đó có dạng: http://ten-website-cua-ban.com/?cid=1&pid=2 ...
Bạn thêm dấu nháy đơn ' hoặc nháy kép " vào đường dẫn trên: http://ten-website-cua-ban.com/?cid=1&pid=2'
Nếu bạn thấy dòng thông báo tương tự:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
tức là website của bạn đang bị lỗi SQL injection.

Cách phòng tránh:
Trong php bạn chỉ cần thêm vào hàm intval() để kiểm tra các biến $cid hoặc $pid.