2010-01-27 9 views

risposta

7

Il codice è protetto da attacchi di SQL injection. L'escaping viene eseguito da ActiveRecord, quindi ogni volta che chiami il modello find, create, new/save o qualsiasi altro metodo che interagisce con il database, sei a posto. L'unica eccezione è se si utilizza SQL prima per una delle opzioni, ad esempio:

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

la forma preferita è:

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

che sarà automaticamente protetto contro SQL injection.

4

Si noti che l'esempio di codice è sicuro dall'iniezione SQL come spiegato da Alex, ma non è sicuro da mass assignment exploits.

+0

Ottimo punto: non sono sicuro del motivo per cui non mi è venuto in mente prima – DanSingerman

Problemi correlati