MySQL HTML 消毒

MySQL HTML sanitization

我有一个将数据保存到 MySQL 数据库的网站

我是否应该在将 HTML 插入 MySQL 或在我的网站上显示它时将其转义?

理想情况下,我想将原始 HTML 输入到我的数据库中,并在每次从中提取时进行清理。这样做有什么危险吗?

示例html:<h1>test</h1>

typically users won't save HTML, but I don't want them to be restricted. Of course that HTML won't be executed. It will just be displayed

Should I escape the HTML upon inserting it into MySQL or upon displaying it on my website?

那么您没有 HTML 开头。你有纯文本。

转义要注入的纯文本 HTML 是一项快速操作,除非我们在单行中讨论价值 1 GB 的文本,否则缓存它没有意义。如果您在保存之前将纯文本转换为 HTML,您将不再拥有原始文本,并且您被迫 撤消 编码只是为了 在 HTML 上下文中使用它(例如,将它放在 JavaScript 变量中或将其用作 e-mail 主题)。