从控制器中渲染html.erb部分时转义Javascript

时间:2010-11-23 00:29:29

标签: ruby-on-rails ajax xss render partial

我认为以下情况是否存在安全风险(XSS) 在我的一个控制器中,我回复了一个Javascript请求:

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

myobjects partial(_myobjects.html.erb)是HTML部分(某些模板也使用),其中输入来自数据库的内容。使用jQuery,我现在执行以下Ajax请求以获取myobjects中的内容并替换网站上的内容:

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

我现在问自己这是否安全。

  • 在上面的Ajax请求中使用myobjects partial时,是否需要显式执行一些转义?
  • 我是否必须在部分内部手动执行此操作?或者我能以某种方式告诉渲染方法这样做吗?
  • 在普通的html.erb模板中使用相同的部分时,会在部分内部添加一个escape_javascript调用吗?

1 个答案:

答案 0 :(得分:0)

我觉得比实际情况更复杂。使用<%=%>的所有内容默认情况下是安全的(因为HTML标签在Rails> = 3中自动转义)。因此,上述方案也没有风险,因为数据库内容以这种方式插入到部分内容中。