2010-01-27 11 views

Respuesta

7

Ese código es seguro contra ataques de inyección SQL. El escape lo realiza ActiveRecord, por lo que cada vez que llame al modelo find, create, new/save, o cualquier otro método que interactúe con la base de datos, está bien. La única excepción es si se utiliza SQL prima para una de las opciones, por ejemplo:

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

la forma preferida es:

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

que será protegido automáticamente contra la inyección de SQL.

4

Tenga en cuenta que su ejemplo de código está a salvo de la inyección de SQL como lo explica Alex, pero no está seguro desde mass assignment exploits.

+0

Muy buen punto - no estoy seguro de por qué esto no se me ha ocurrido antes – DanSingerman

Cuestiones relacionadas