Không có viên đạn bạc ở đây. Việc tiêm SQL có thể có nhiều dạng bị che khuất và cố gắng phát hiện chúng bằng cách sử dụng biểu thức chính quy hoặc dạng khác trong tường lửa của bạn hoặc ứng dụng có thể bảo vệ bạn khỏi các dạng SQL injection đơn giản nhất. Như AdaTheDev đã lưu ý, các công cụ tự động kiểm tra mã của bạn, chẳng hạn như Công cụ phân tích mã MS, có thể cung cấp cho bạn một khởi đầu, nhưng lại không có viên đạn bạc. Bạn sẽ cần phải trải qua toàn bộ ứng dụng của mình.
Khi điều này là rất nhiều công việc, bạn nên lập kế hoạch. Trước hết, hãy đưa ra một hướng dẫn cho biết các loại tấn công này có thể được giảm thiểu như thế nào. Cũng cố gắng chia ứng dụng của bạn thành nhiều phần, từ rất quan trọng đến ít quan trọng hơn. Bằng cách này bạn có thể ước tính tốt hơn chi phí sửa chữa các lỗi và có thể cho phép quản lý quyết định những gì nó có thể chi phí và do đó những gì họ có nguy cơ sẵn sàng để có. Các phần của ứng dụng của bạn mà người dùng chưa được xác thực có thể truy cập là quan trọng nhất. Nếu mọi người (trên thế giới) có thể tạo một tài khoản trong ứng dụng của bạn, tất cả các chức năng mà những người dùng này có thể truy cập là rất quan trọng. Dân số càng nhỏ và bạn càng tin tưởng những người dùng đó thì rủi ro càng nhỏ. Bạn có lẽ có thể lấy đi với sửa chữa những phần sau này. Nhưng đừng bao giờ đánh giá thấp một hacker tốt. Anh/cô ấy có thể thỏa hiệp tài khoản của người dùng có đặc quyền cao và bắt đầu thử nghiệm khả năng chèn SQL bằng tài khoản đó.
Luôn cố gắng bảo vệ chiến lược sâu, có nhiều (hoặc nhiều) lớp bảo vệ. Ví dụ, không bao giờ kết nối với cơ sở dữ liệu của bạn như SA từ bên trong ứng dụng của bạn. Tạo một tài khoản chỉ với các đặc quyền cần thiết và thậm chí có thể tạo nhiều tài khoản SQL, một tài khoản cho mỗi vai trò (hoặc cho mỗi nhóm vai trò). Trong khi hạn chế các đặc quyền đối với cơ sở dữ liệu giúp rất nhiều trong việc giảm thiểu rủi ro, một lần nữa, không đặt cược vào nó như là một lớp bảo vệ. Ví dụ: This article, giải thích cách một hacker có thể lạm dụng tài khoản đặc quyền thấp hơn khi cô ấy có thể thực hiện việc tiêm SQL. Thật đáng ngưỡng mộ khi bạn hỏi câu hỏi này ở đây, bởi vì tôi đã thấy nhiều nhà phát triển trong quá khứ, những người không muốn biết, điều này rất đáng sợ, bởi vì doanh nghiệp thường tin tưởng các nhà phát triển của nó (điều đáng sợ như tốt).
Chúc các bạn may mắn nhất.
Dự án được viết bằng gì? –
Mã được viết bằng VB.Net –
Nếu bạn có 1000 địa điểm nơi điều này có thể là một vấn đề, thì bạn nên tìm cách tự động chỉnh sửa mã để sử dụng truy vấn được tham số hóa. –