Có thể ai đó vui lòng chỉ cho tôi hướng dẫn mới bắt đầu về các truy vấn SQL chạy một cách an toàn được hình thành một phần từ đầu vào của người dùng không? Tôi đang sử dụng Java, nhưng một hướng dẫn trung lập ngôn ngữ cũng tốt.Tôi nên làm vệ sinh đầu vào cơ sở dữ liệu bằng Java như thế nào?
Các hành vi mong muốn là nếu ai đó vào một cái gì đó giống như GUI
very nice;) DROP TABLE FOO;
Cơ sở dữ liệu nên đối xử với nó như là một chuỗi chữ và lưu trữ nó một cách an toàn mà không thả bất kỳ bảng.
Đây chính xác là loại tấn công mà các câu lệnh chuẩn bị nhằm bảo vệ chống lại. Nó sẽ thoát khỏi; – danieltalsky
Về mặt kỹ thuật, giao diện PreparedStatement không đảm bảo nó. Mặc dù nếu trình điều khiển của bạn làm điều gì đó khác, hãy tìm một nhà cung cấp mới. –
@daniel - Tôi sẽ phải thử và tự mình xem. Cho dù tôi có đúng về điều đó hay không, bạn có đồng ý rằng việc xác nhận hợp lệ phía máy chủ vẫn là một ý tưởng hay không? – duffymo