关于视图中的Rails sanitize()的建议或我的代码的安全性

时间:2010-08-30 02:47:19

标签: ruby-on-rails security views ruby-on-rails-3 sanitize

我有一个包含此sanitize()代码的部分:

<%= sanitize comment.body,
:tags => %w(a b embed i img object p param),
:attributes => %w(allowfullscreen allowscriptaccess href name src type value) %>

我希望用户能够嵌入视频,链接,图片,使用斜体,粗体等。

这有多不安全,如果我把它放在现场网站上,我应该期待或准备应对什么?

注意:这是假设没有明显的输入消毒。

感谢阅读。

1 个答案:

答案 0 :(得分:1)

您真正需要注意的标签是&lt; script /&gt;和&lt; object /&gt;。

如果允许视频,则应根据与来自YouTube和其他系统的预期值匹配的可接受对象格式进行验证,或者(理想情况下)创建处理用户嵌入的UI。

去年,我创建了一个系统,通过获取YouTube网址并手动导出对象嵌入代码,允许视频嵌入。它的好处是使用户体验非常精简,并保护系统免受潜在的攻击。<​​/ p>

哦,还有其他的事情 - 如果你能使用强大 em ,而不是 b i