将HTML存储在DB sane / safe for blog?

时间:2013-10-22 01:40:00

标签: html database blogs

我打算用一个WYSIWYG编辑器创建一个博客(不足以获得CMS / Wordpress实例的博客)平台,以便管理员发布文章。我一直想知道在数据库(文章文本)上存储HTML是否合理和/或安全(我总是可以清除所有脚本标记的痕迹)以及是否有更好的解决方案来解决问题。

不要误会我的意思:我知道它有效,但是我知道这有点麻烦,我不知道有更好的解决方案。

1 个答案:

答案 0 :(得分:2)

不确定。您可以将其存储在文件系统中,但之后您将失去数据库的优势(例如使用其他内容进行单一备份或级联删除)。

在存储HTML之前,您需要清理HTML,因为它可能包含XSS。你不想意外地在管理界面中意外地返回它。

在Java中,您可以使用Hibernate Validator的@SafeHtml注释/ JSoup库进行清理。

您还应该在输出之前转义服务器上的HTML,以便在浏览器中不运行不安全的JavaScript。

此外:

  • 使用仅限HTTP的会话cookie(以便XSS攻击无法使用它们)
  • X-XSS-Protection = 1; mode = block
  • X-Content-Security-Policy = default-src' self'
  • Content-Security-Policy = default-src' self'
  • X-WebKit-CSP = default-src' self'
  • 使用X-Content-Type-Options = nosniff标题(我认为)