2010-01-27 19 views

Trả lời

7

Mã đó an toàn khỏi các cuộc tấn công SQL injection. Việc thoát được thực hiện bởi ActiveRecord, vì vậy bất cứ khi nào bạn gọi một mô hình là find, create, new/save hoặc bất kỳ phương pháp nào khác tương tác với cơ sở dữ liệu, bạn đều OK. Ngoại lệ duy nhất là nếu bạn sử dụng SQL liệu cho một trong các tùy chọn, ví dụ:

Comment.find(:all, :conditions => "user_id = #{params[:user_id]}") 

hình thức ưa thích là:

Comment.find(:all, :conditions => {:user_id => params[:user_id]}) 

sẽ được tự động bảo vệ chống lại SQL injection.

4

Lưu ý rằng ví dụ mã của bạn được an toàn khỏi SQL injection như được giải thích bởi Alex, nhưng nó không an toàn từ mass assignment exploits.

+0

Điểm tốt - không chắc tại sao điều này chưa xảy ra với tôi trước đây – DanSingerman

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