【问题标题】:Store TinyMCE form data in a MySQL database and return as is将 TinyMCE 表单数据存储在 MySQL 数据库中并按原样返回
【发布时间】:2018-08-12 03:20:07
【问题描述】:
我目前在一个 CMS 项目中,我们希望使用 TinyMCE 作为我们所见即所得的编辑器。在这里,我们允许用户自定义他们的内容(例如某些部分是粗体,不同的缩进等)。我想知道的是,我们如何将这些表单数据存储在 MySQL 数据库中,以及我们如何从那些款式?数据库中是否存在问题,因为它包含 html 标签?我想你可能会明白我在问什么。这是我们第一次使用所见即所得的编辑器,感谢您的帮助..
【问题讨论】:
标签:
html
mysql
database
tinymce
wysiwyg
【解决方案1】:
对于 MySQL,TinyMCE 生成的 HTML 只是一个字符串,你可以按原样存储它(在你的安全过滤器验证它之后)
但是,您的应用程序必须非常小心地处理 Strong,因为不小心处理会导致跨站脚本 (XSS)。
这比防止非 html 字段上的 XSS 更困难,因为输出清理不起作用。
在 HTML 字段中防止 XSS 最可靠的方法是您需要过滤服务器、白名单或黑名单中的 HTML 文本。
黑名单更容易实现,但可能会遗漏一些我们不知道的模式。白名单更健壮但麻烦。您将定义您允许的标签和属性,HTML 包含无效标签或属性可以被过滤或阻止。您可以通过Jsoup实现白名单(为了更好的性能,我建议您自定义Jsoup)
您不能相信 tinymce 会帮助您,因为黑客可以轻松绕过客户端验证。