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

Tex*_*xas 0 ruby ruby-on-rails-3

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

DGM*_*DGM 5

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

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

另见:更好的红宝石降价翻译?

更新:有什么好时机,今天发布了一个关于此的railscast:http://railscasts.com/episodes/272-markdown-with-redcarpet