我一直在关注Rails 3入门指南,指南中有一条我不明白的说明:
在以前版本的Rails中,您必须使用
<%=h post.name %>
任何HTML在插入页面之前都会被转义。在 Rails 3.0,现在是默认值。要获取未转义的HTML,您现在可以使用<%= raw post.name %>
。
我真的没有得到转义HTML与非转义HTML的含义。有人可以向我解释一下吗?
谢谢!
答案 0 :(得分:2)
如果post.name = <b>Bob</b>
然后Escaped HTML将显示
<b>Bob</b>
虽然非转义HTML将显示原始输出
<强>鲍勃强>
答案 1 :(得分:1)
转义HTML只是意味着对其进行编码,使其看起来像HTML,因此您看到<b>foo</b>
而不是在页面上实际被视为HTML,例如 foo 。
这样做的方法是将特殊字符转换为称为HTML实体的安全版本。例如,<
的HTML实体为>
。
答案 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应用程序的指南,该应用程序涉及很多事情。