我打算用所见即所得的编辑器制作一个博客式的平台(虽然博客还不够多,值得一个 CMS/Wordpress 实例),以使管理员能够发布文章。我一直想知道在数据库中存储 HTML(用于文章文本)是否合理和/或安全(我总是可以清除所有脚本标签的痕迹),以及是否有更好的解决方案。
不要误会我的意思:我知道它有效,但我感到非常痒,必须有一个我不知道的更好的解决方案。
当然。您可以将其存储在文件系统中,但随后您将失去数据库的优势(例如与其他内容进行单一备份,或级联删除)。
您需要在存储 HTML 之前对其进行清理,因为它可能包含 XSS。您不想意外地在管理界面中意外返回它。
在 Java 中,您可以使用 Hibernate Validator 的 @SafeHtml 注释 / JSoup 的库进行清理。
您还应该在输出之前在服务器上转义 HTML,这样浏览器中就不会运行不安全的 JavaScript。
还: