2009-10-17 9 views
0

當我做一個查詢...軌活動記錄的細微差別和防止注入攻擊

是有使用find_by助手或不之間的任何有意義的區別?

當我做這樣的事情時,我忽略了選擇較短代碼行的原因嗎?

Booking.find_all_by_user_id(1, :joins => :confirmation) 

Booking.find(:all, :joins => :confirmation, :conditions => [ 'bookings.user_id = ?', 1]) 

回答

3

不,關於注射攻擊。 find_by方法應該是安全的。但是唯一的殺手鐗錯誤是使用find方法時,喜歡做直接使用用戶輸入您的conditions PARAM內:

Booking.find(:all, :joins => :confirmation, :conditions => [ 'bookings.user_id = #{params[user_id]]}']) 

當然,正確的是你所採取的方式和方法find將過濾的東西了。

Booking.find(:all, :joins => :confirmation, :conditions => [ 'bookings.user_id = ?', params[user_id]])