2009-07-27 9 views
5

Mỗi mẫu tôi đã thấy đều sử dụng các thủ tục lưu sẵn. Tôi đã áp dụng một ứng dụng cũ được viết bằng ASP cổ điển sử dụng SQL nội tuyến. Đây là một vấn đề rõ ràng, vì vậy tôi cần phải chuyển đổi nó thành mã an toàn hơn. Các khách hàng không muốn rằng tôi sử dụng các thủ tục được lưu trữ trong ứng dụng này, do đó, có một cách để chạy các truy vấn tham số mà không cần thủ tục lưu trữ?Truy vấn tham số KHÔNG CÓ thủ tục được lưu trữ?

Cảm ơn

Trả lời

7
+0

Liên kết đầu tiên dường như không hoạt động – Chris

+0

Nó hoạt động tốt cho tôi –

+0

Chỉ cần kiểm tra. Không có vẻ để tải mà không có www nhưng nó tốt với nó. Cảm ơn! – Chris

-1

Có bất kỳ lý do tại sao khách hàng không muốn sử dụng thủ tục lưu trữ? Nó dễ dàng hơn nhiều khi sử dụng các thủ tục lưu sẵn cả ở cấp cơ sở dữ liệu cũng như trong mã nguồn của bạn. Bạn sẽ nhận được bộ nhớ đệm kế hoạch truy vấn trên truy vấn nội tuyến của bạn nếu bạn sử dụng phương pháp thứ hai từ trên, nhưng tùy thuộc vào những gì bạn đang làm, bạn có thể tốt hơn với sprocs đơn giản nếu bạn có thể thuyết phục khách hàng của bạn rằng nó là ok để sử dụng chúng. Nếu mọi thứ khác không thành công thì các liên kết trên khá chắc chắn, đặc biệt là liên kết thứ hai.

+0

- 1: "dễ dàng hơn" là chủ quan, và việc sử dụng các thủ tục lưu trữ không phải là một đảm bảo chống lại SQL injection. – RedFilter

+0

Tôi không nghĩ trong một phút rằng đây là một điều chủ quan. Đây là một khái niệm tiêu chuẩn về phát triển nhiều tầng, phân tách logic và các tầng dữ liệu của bạn. Tôi cũng không bao giờ nói rằng các thủ tục lưu trữ _guarantee_ bảo vệ chống lại SQL injection. Các truy vấn tham số và các thủ tục được lưu trữ sẽ ngăn chặn nhiều tình huống xảy ra từ mã hóa lười cho phép SQL injection, nhưng nó không ngăn các truy vấn động trong sprocs bị tổn thương trong số những thứ khác. Một cuộc bỏ phiếu xuống có vẻ khá không phù hợp vì đây là một phản ứng hợp lệ và sâu sắc. – tcnolan