2009-10-17 4 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 должен быть безопасным. Однако только убийца ошибка состоит в том, чтобы использовать пользовательский ввод непосредственно внутри conditions паров при использовании find метода, как делать:

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]])