为什么“_path”路由助手返回的字符串未标记为html_safe?

时间:2011-10-20 15:23:11

标签: ruby-on-rails ruby-on-rails-3

“_path”路由助手返回未标记为html_safe的字符串。

我不确定 - 也许它确实不是html安全的,但是当我将类似"foo>bar"的内容传递给_path帮助程序时,它会生成如下字符串:

/aa/foo%3Ebar/bb

看起来很安全。

然而,html_safe?该字符串是false,如果我将其传递给模板,我应该得到:

/aa/foo%3Ebar/bb

看起来不那么好。

我可以在帮助器输出上调用.html_safe,但是在某些情况下_path帮助器会发出不安全的字符?

无论如何,我不喜欢在每个帮助器输出上调用html_safe的想法,并希望框架能够处理这些内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这是有用的,因为客户端可以将变量传递给url,如果路径被标记为html_safe为deafult,他可以简单地将一些javascript / html / ...写入url并且它将被执行。这被称为Cross Site Scripting,也是最“流行”的安全漏洞之一。因为它“仅”是客户端攻击,但它可能会对您的用户造成危险,所以最好不要默认更改它!