2010-11-23 43 views
0

我想如果以下情形是安全风险(XSS)。
以我控制器中的一个予与一个Javascript请求作出响应:当从控制器内部呈现html.erb部分时逃脱Javascript

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

的myobjects部分(_myobjects.html.erb)是一个HTML部分(即也使用一些模板),其中来自数据库的东西被输入。使用jQuery我现在要做以下Ajax请求得到myobjects的内容和更换网站上的东西:

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

我问自己,现在如果这是安全的。

  • 当我在上面的Ajax请求中使用myobject部分时,是否需要明确地做一些转义操作?
  • 我必须在部分内部手动执行该操作吗?或者我可以以某种方式告诉render方法来做到这一点?
  • 在正常的html.erb模板中使用相同的部分时,是否会在部分内部添加escape_javascript调用干扰?

回答

0

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