0

RoR 3 自动清理 ERB 模板(如果操作正确)。但是,我有一个小项目,我仅将 RoR 用于应用程序层,将 javascript 用于演示。因此,典型的请求是对 rails 路由的 ajax 调用并呈现返回的 json。问题是我目前可以注入 js,创建一个带有标题的新产品,<script>alert('hello')</script>并在下一个请求时按原样返回,浏览器会愉快地解释脚本。

是不是最好

  1. 清理帖子上的输入?
  2. 清理服务器上的 json 响应?(覆盖 to_json?)
  3. 清理客户端上的 json 响应?

我很感激任何意见。

4

1 回答 1

1

当您将数据附加到页面时,您应该在内容客户端对 HTML 实体进行编码。

问题是,您的其他产品字段是否有意包含也会被编码的链接或段落标签等标记?如果是这种情况,并且您打算在页面上将 json 响应的某些部分呈现为 HTML,那么您应该在创建新产品时清理您的输入,并将您允许的 HTML 标签限制为特定的子集,然后擦掉它们的属性。有一些库可以自动执行此过程,例如sanitize gem

于 2011-07-28T15:35:20.237 回答