DB エントリをサニタイズするだけで問題ありません。Rails はデフォルトでこれを行います。フレームワークを正しく使用するだけです。詳細については、こちらをご覧ください: http://wiki.rubyonrails.org/howtos/security/sql_injection
これを行う:
Project.find(:all, :conditions => ["name = ?", params[:name]])
# or
Project.find(:all, :conditions => {:name => params[:name]})
これではない:
Project.find(:all, :conditions => "name = '#{params[:name]}'")
また、XSS 攻撃を防ぐ必要があります。
<%=h possible_harmful_text %>
参考のため:
クロスサイト スクリプティング (XSS) は、Web アプリケーションで一般的に見られるコンピューター セキュリティの脆弱性の一種であり、悪意のある Web ユーザーが、他のユーザーが表示する Web ページにコードを挿入できるようにします。このようなコードの例には、クライアント側のスクリプトが含まれます。攻撃者は、悪用されたクロスサイト スクリプティングの脆弱性を使用して、同一オリジン ポリシーなどのアクセス制御をバイパスできます。この種の脆弱性は、強力なフィッシング攻撃やブラウザ エクスプロイトを作成するために悪用されています。Web サイトで実行されるクロスサイト スクリプティングは、2007 年の時点で文書化されたすべてのセキュリティ脆弱性の約 80% でした。多くの場合、攻撃中、エンド ユーザーは「すべて問題ないように見えます」が、不正アクセス、機密データの盗難、および金融被害を受ける可能性があります。損失。(ウィキペディア経由)
そしてもちろん
SQL インジェクションは、アプリケーションのデータベース層で発生するセキュリティの脆弱性を悪用するコード インジェクション手法です。この脆弱性は、ユーザー入力が SQL ステートメントに埋め込まれた文字列リテラル エスケープ文字に対して正しくフィルター処理されない場合、またはユーザー入力が厳密に型指定されていないために予期せず実行される場合に存在します。これは、あるプログラミング言語またはスクリプト言語が別の言語に組み込まれるたびに発生する可能性がある、より一般的なクラスの脆弱性のインスタンスです。SQL インジェクション攻撃は、SQL 挿入攻撃とも呼ばれます。1
(ウィキペディア経由)