Rails - javascript注入

时间:2012-02-05 19:52:07

标签: ruby-on-rails

我正在使用Rails 3和Ruby 1.9.2。当我显示帖子的内容时,我正在做一些特别的事情,我只是在做

<%=@post.content%>

当我添加

"<script language='javascript'>alert('test');</script>" 

到我的帖子形式当然会执行javascript警告!

我尝试在保存之前和显示之前添加html_safe,但它没有修复任何内容。

如果我必须添加任何安全码,我是否必须在保存帖子之前或显示之前添加它?我听说rails 3本身就是这样做的,所以我没有太多关于安全性的问题,但我想仍有一些主要的事情需要注意。

2 个答案:

答案 0 :(得分:2)

Rails 3对于放弃您放入视图中的任何内容非常严格,但在Rails 2及更早版本中,您有责任这样做。你必须使用h辅助方法逃避一切:

<%= h(value) %>

在构建接受任意用户输入的应用程序时,您必须确定您正在逃避视图中显示的所有内容和所有内容。

答案 1 :(得分:1)

您使用的是Rails 3吗? javascript内容应自动转义。

但是有关防止XSS的更多信息,我只看Ryan Bates' RailsCasts.