1. SQL Injection là gì? Việc thiết kế và đưa vào hoạt động một website luôn đòi hỏi các nhà phát triển phải quan tâm đến các vấn đề về 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. Tuy nhiên, thông thường các nhà phát triển đa số tập trung vào các vấn đề an toàn trong việc chọn hệ điều hành, hệ quản trị CSDL, webserver sẽ chạy ứng dụng, . | BẢO VỆ ỨNG DỤNG WEB CHỐNG TẤN CÔNG KIỂU SQL INJECTION Lê Đình Duy Khoa CNTT - ĐHKHTN ldduy@ 1. SQL Injection là gì Việc thiết kế và đưa vào hoạt động một website luôn đòi hỏi các nhà phát triển phải quan tâm đến các vấn đề về 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. Tuy nhiên thông thường các nhà phát triển đa số tập trung vào các vấn đề an toàn trong việc chọn hệ điều hành hệ quản trị CSDL webserver sẽ chạy ứng dụng . Ví dụ người ta thường quan tâm nhiều đến các lỗ hổng về an toàn trên IIS hơn là quan tâm đến các đoạn mã của ứng dụng có tiềm ẩn các lỗ hổng nghiêm trọng hay không. Một trong số các lỗ hổng này đó là SQL injection attack. SQL injection là một kĩ thuật cho phép những kẻ tấn công thi hành các câu lệnh truy vấn SQL bất hợp pháp không được người phát triển lường trước bằng cách 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. 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 . do có toàn quyền trên cơ sở dữ liệu của ứng dụng. Lỗi này thường xảy ra trên các ứng dụng web có dữ liệu được quản lí bằng các hệ quản trị CSDL như SQL Server Oracle DB2 Sysbase. Xét một ví dụ điển hình thông thường để cho phép người dùng truy cập vào các trang web được bảo mật hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin về tên đăng nhập và mật khẩu. Sau khi người dùng nhập thông tin vào hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu có hợp lệ hay không để quyết định cho phép hay từ chối thực hiện tiếp. Trong trường hợp này người ta có thể dùng 2 trang một trang HTML để hiển thị form nhập liệu và một trang ASP dùng để xử lí thông tin nhập từ phía người dùng. Ví dụ form action method post Username input type text name txtUsername br Password input type password name txtPassword br input type submit form Dim p_strUsername p_strPassword objRS strSQL p_strUsername .