2010-06-02 24 views
29

Trong Rails, khi tôi muốn tìm một người dùng giá trị nhất định và tránh SQL injection (thoát khỏi dấu nháy và các loại tương tự) tôi có thể làm một cái gì đó như thế này:Rails SQL injection?

Post.all(:conditions => ['title = ?', params[:title]]) 

Tôi biết rằng một cách an toàn để làm điều này (SQL injection có thể) là:

Post.all(:conditions => "title = #{params[:title]}") 

Câu hỏi của tôi là, phương pháp sau có ngăn SQL injection hay không?

Post.all(:conditions => {:title => params[:title]}) 

Trả lời

37

Vâng, đúng vậy. Chỉ cái thứ hai là nguy hiểm.

+0

Cảm ơn bạn đã phản hồi trực tiếp. –

5

1 @fphilipe và @yuval Kiểm tra video này 5 phút từ railscast và một này từ rails guide

+0

Cảm ơn, tôi đã nhìn thấy điều này nhưng nó không bao gồm câu hỏi của tôi (liên quan đến lần tìm cuối) –

Các vấn đề liên quan