Tin tức

Chặn hacker SQL Injection với ASP

30/11/2012

Hầu hết các công ty ngày nay đều cho phép người dùng cũng như khách truy cập có thể đăng tải và thu hồi dữ liệu được lưu trên cơ sở dữ liệu của máy chủ. SQL Injection là một cách để vượt qua lệnh SQL được dùng trong ứng dụng Web để truy cập cơ sở dữ liệu.

Một khi SQL injection vượt qua được lệnh SQL, hacker có thể thu thập dễ dàng cơ sở dữ liệu của công ty và sao chép lại hoặc thậm chí chúng còn xóa sạch toàn bộ cơ sở dữ liệu. Hầu hết mục tiêu tấn công của SQL injection là những trang có yêu cầu đăng nhập, có yêu cầu nhập thông tin và gửi lại phản hồi, tính năng tìm kiếm có trên trang web cũng như những trang web thương mại điện tử. Dưới đây là một số cách để chặn hacker SQL injection với ASP.

• Xác nhận loại, định dạng, độ dài, của dữ liệu quan trọng và hạn chế đầu vào với một danh sách các ký tự có thể chấp nhận được. Bạn cũng nên sử dụng một số biểu thức giúp từ chối các ký tự không bao gồm trong danh sách các ký tự hợp lệ. Đầu vào sẽ bị hạn chế bởi mã hóa từ máy chủ của trang web đã được tạo với ASP.NET. Bằng cách sử dụng RegularExpressionValidator, bạn có thể hạn chế đầu vào của quản lý Textbox

• Bạn có thể hạn chế số thứ tự có xuất phát từ nguồn khác bằng cách sử dụng phân loại Regex từ vùng System.Text.RegularExpressions.

• Những người lập trình web nên sử dụng xác nhận đầu vào trong quá trình lập trình trang web để nhận dạng tấn công SQL injection. Phòng chống là vấn đề cốt lõi. Bạn nên đặt các vấn đề bảo mật đúng chỗ để có thể ngăn chặn tấn công từ sự tấn công thiết lập từ trang web bằng cách giả định toàn bộ truy cập vào là mã độc. Tất cả những truy cập vào đều được xác nhận như form fields, cookies và query string parameters bằng cách sử dụng quản lý xác nhận ASP.NET.

• ASP.NET yêu cầu xác nhận trong suốt quá trình phát triển trang web sẽ nhận dạng được tấn công SQL injection. Yêu cầu này sẽ phát hiện tất cả các html và các loại ký tự khác được đăng tải trên trang chủ và ngăn chặn người dùng từ các script có chứa mã độc tới các ứng dụng và kiểm tra tất cả các dữ liệu vào đối với danh sách có độ nguy hiểm cao nhất. Yêu cầu xác nhận này được bật mặc định. Hãy chắc chắn rằng bạn không thay đổi cài đặt này.

• Nếu ứng dụng web bắt buộc phải chấp nhận cá html, bạn sẽ phải tắt yêu cầu xác nhận ASP.NET và thay thế với một bộ lọc giúp bạn chấp nhận những mã html có hạn chế. Bộ lọc sẽ chỉ chấp nhận những mã html an toàn và những mã html giải được mã. Phương pháp này sẽ thay thế các ký tự có ý nghĩa đặc biệt với format html.

Quá trình xác nhận có thể thực hiện bởi ngưởi quản trị với sự hiểu biết về cơ sở dữ liệu và ứng dụng ASP.net cũng như hiểu biết về script PHP. Nếu ai không có kiến thức chuyên môn mà thực hiện quá trình này, bạn đang đẩy cơ sở dữ liệu của công ty mình vào nguy hiểm. Hơn nữa, hãy chú ý rằng các lệnh đã được trích từ hướng dẫn của ASP.net.

ESVN - Sưu tầm