Về mặt kỹ thuật, bạn sẽ không gặp rủi ro nếu bạn không chuẩn bị dữ liệu không đến từ đầu vào của người dùng. Tuy nhiên, chúng tôi khuyên bạn nên làm như vậy vì một số lý do:
- Nếu bạn quên chuẩn bị bất kỳ dữ liệu đầu vào nào của người dùng ở đâu đó, thì rất có thể người dùng này đã đưa một thứ gì đó linh tinh vào một hàng dữ liệu mà bạn không mong đợi là dữ liệu nhập của người dùng.
- Một phương pháp hay là lặp lại những gì bạn đang làm để giữ an toàn cho máy chủ của bạn. Nếu bạn bắt đầu trộn nó, nhiều khả năng bạn sẽ quên việc chuẩn bị dữ liệu ở những nơi thực sự cần thiết để làm như vậy.
- Việc chuẩn bị dữ liệu của bạn không chỉ để ngăn chặn việc đưa vào SQL từ những kẻ tấn công. Nó cũng sẽ ngăn chặn một số vấn đề về cơ sở dữ liệu trong trường hợp bạn vô tình tạo ra một lỗi trong mã của mình. Ví dụ:
Ở đâu đó trong mã của bạn, bạn có một hệ thống nhật ký để thêm một nhật ký lỗi vào cơ sở dữ liệu của bạn. Chuỗi sẽ là:
Chuỗi này được tạo bởi tập lệnh của bạn. Vì bạn không chuẩn bị nó. Tuy nhiên, các dấu ngoặc kép bên trong chuỗi này sẽ gây ra lỗi với cơ sở dữ liệu của bạn mà có thể đã được ngăn chặn nếu bạn vẫn chuẩn bị.