Rails入门帮助

时间:2011-07-22 21:37:24

标签: ruby-on-rails

我一直在关注Rails 3入门指南,指南中有一条我不明白的说明:

  

在以前版本的Rails中,您必须使用<%=h post.name %>   任何HTML在插入页面之前都会被转义。在   Rails 3.0,现在是默认值。要获取未转义的HTML,您现在可以使用   <%= raw post.name %>

我真的没有得到转义HTML与非转义HTML的含义。有人可以向我解释一下吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果post.name = <b>Bob</b>

然后Escaped HTML将显示

<b>Bob</b>

虽然非转义HTML将显示原始输出

<强>鲍勃

答案 1 :(得分:1)

转义HTML只是意味着对其进行编码,使其看起来像HTML,因此您看到<b>foo</b>而不是在页面上实际被视为HTML,例如 foo

这样做的方法是将特殊字符转换为称为HTML实体的安全版本。例如,<的HTML实体为&gt;

答案 2 :(得分:0)

Html转义对于通过跨站点脚本来保护rails应用程序非常重要。为了更好地理解跨站点脚本,请通过此初始截屏视频。

http://railscasts.com/episodes/27-cross-site-scripting

有关如何在Rails 3中处理此问题的更多信息

http://railscasts.com/episodes/204-xss-protection-in-rails-3

我建议你仔细阅读关于保护Rails应用程序的指南,该应用程序涉及很多事情。

http://guides.rubyonrails.org/v2.3.8/security.html