我正在使用Rails 3和Ruby 1.9.2。当我显示帖子的内容时,我正在做一些特别的事情,我只是在做
<%=@post.content%>
当我添加
"<script language='javascript'>alert('test');</script>"
到我的帖子形式当然会执行javascript警告!
我尝试在保存之前和显示之前添加html_safe
,但它没有修复任何内容。
如果我必须添加任何安全码,我是否必须在保存帖子之前或显示之前添加它?我听说rails 3本身就是这样做的,所以我没有太多关于安全性的问题,但我想仍有一些主要的事情需要注意。
答案 0 :(得分:2)
Rails 3对于放弃您放入视图中的任何内容非常严格,但在Rails 2及更早版本中,您有责任这样做。你必须使用h
辅助方法逃避一切:
<%= h(value) %>
在构建接受任意用户输入的应用程序时,您必须确定您正在逃避视图中显示的所有内容和所有内容。
答案 1 :(得分:1)
您使用的是Rails 3吗? javascript内容应自动转义。
但是有关防止XSS的更多信息,我只看Ryan Bates' RailsCasts.