RoR 3はERBテンプレートを自動的に消滅させます(正しく実行された場合)。しかし、アプリケーション層のみにRoRを使用し、プレゼンテーションにはjavascriptを使用している小さなプロジェクトがあります。したがって、典型的な要求は、ajaxのrailsへの呼び出しであり、返されたjsonをレンダリングします。問題は私が現在jsを挿入し、タイトル<script>alert('hello')</script>
で新製品を作成することが可能であり、これは次の要求でそのまま返され、ブラウザは喜んでスクリプトを解釈します。RailsからJSONをサニタイズする最良の方法
それは
- するのがベストですが、ポスト上の入力をサニタイズ?
- サーバー上のjsonレスポンスをサニタイズしますか? (to_jsonをオーバーライドしますか?)
- クライアントでjsonレスポンスをサニタイズしますか?
私は入力を感謝します。
ありがとうございました。ユーザーが提供するマークアップを含むモデル属性がいくつかあります。そこで、before_validationをスクラブするためにオブザーバーを選択しました。 –
sanitize gemは素晴らしいですが、JRubyのような別の環境では作成者がそれをサポートしないのでビルドしませんので、より詳細な解決策が得策です。 – rcd