2010-11-23 9 views
0

次のシナリオがセキュリティリスク(XSS)であると考えます。私のコントローラの一つで
私はとJavascriptの要求に応答:コントローラ内からhtml.erbパーシャルをレンダリングするときにJavascriptをエスケープする

format.js { render :partial => "myobjects" }` 

myobjects部分(_myobjects.html.erb)は、データベースからのものが入力された部分HTML(それはまた、いくつかのテンプレートで使用されている)です。 jQueryを使って私は今myobjectsのコンテンツを取得し、サイト上で何かを交換するには、次のAjaxリクエストを実行します。

$.get(this.href, function(data) { 
    $("#myelement").html(data); 
}, "script"); 

これが安全であるならば、私は今、自分自身に尋ねます。

  • 上記のようなAjaxリクエストでmyobjects partialを使用する場合、明示的にエスケープする必要がありますか?
  • 部分的に手動で行う必要がありますか?または、何とかこの方法をレンダリングする方法を教えてもよろしいですか?
  • 通常のhtml.erbテンプレートで同じ部分を使用すると、部分的にescape_javascriptを呼び出すと何とか干渉しますか?

答えて

0

私は実際よりも複雑だと思っていました。 <%=%>を使用しているすべてのものは、デフォルトでは安全です(HTMLタグはRails> = 3で自動的にエスケープされるため)。したがって、上記のシナリオでは、データベースコンテンツが部分的にそのように挿入されるため、リスクはありません。

関連する問題