2010-01-27 3 views

Antwort

7

Dieser Code ist sicher vor SQL-Injection-Angriffen. Das Escapen wird von ActiveRecord ausgeführt. Wenn Sie also die find, create, /save oder eine andere Methode aufrufen, die Datenbankinteraktionen durchführt, sind Sie in Ordnung. Die einzige Ausnahme ist, wenn Sie sich für eine der Optionen rohe SQL verwenden, zum Beispiel:

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

die bevorzugte Form ist:

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

, die automatisch vor SQL-Injection geschützt werden.

4

Beachten Sie, dass Ihr Codebeispiel, wie von Alex erläutert, vor der SQL-Injektion sicher ist, aber nicht sicher von mass assignment exploits.

+0

Sehr guter Punkt - nicht sicher, warum mir das vorher nicht eingefallen ist – DanSingerman