您是否可以将html / erb代码存储在数据库中?

时间:2011-06-27 04:51:32

标签: ruby ruby-on-rails-3

我希望像一个非常简单的博客一样有效地创建一个应用程序 - 每隔几天就会添加另一篇文章。为了控制文章的外观,我想用html直接编写它们,因此图片,链接等可以放在适当的位置并根据需要进行格式化。但是,将这些文章存储在数据库中似乎可以使维护更容易,并提供额外的搜索功能。以这种方式将这样的html / erb代码存储在数据库中是否明智?如果不是什么选择?

1 个答案:

答案 0 :(得分:5)

执行此操作的标准方法是使用标记库(例如redcloth)来执行此操作。你甚至可以在SO上使用类似的东西 - 如果你阅读帮助链接,它看起来像降价。内容当然可以放在数据库中。 可以用html和erb完成,但不经常这样做的原因是安全。

如果你是唯一一个使用它的人,它可能不是问题,但如果你允许其他人插入数据,你可以使用html打开自己的XSS攻击,如果你允许使用原始erb,甚至可以使用代码漏洞。存在标记语言以限制允许的标记集并消除脚本攻击的能力。

另见:Better ruby markdown interpreter?

更新:现在有一个很棒的时机,今天发布了一个关于此问题的railscast:http://railscasts.com/episodes/272-markdown-with-redcarpet