【问题标题】:What is the standard for when to escape text in PHP?PHP中何时转义文本的标准是什么?
【发布时间】:2024-01-07 22:39:02
【问题描述】:

我有一个用户输入字段,它将存储在 MySQL 数据库中的“tinytext”字段中;很标准的东西。我想知道在使用 php 函数 htmlentities() 转义 html 特殊字符时是否需要遵守某种标准或最佳实践?

我应该在将数据存储到数据库之前使用htmlentities(),还是应该在每次从网站输出数据时对数据运行该函数?

【问题讨论】:

  • @John Conde,有点新问题,但你如何做这件事来让内联代码看起来不错?我试图但无法弄清楚:P
  • 只需编辑您的问题,您就会看到我是如何格式化的。我只是在我想作为代码突出显示的任何文本周围添加了反引号 `

标签: php coding-style escaping standards


【解决方案1】:

通常没有理由再使用htmlentities()。只需将所有内容存储在 UTF-8 字段中并遵守UTF-8 all the way through

当以 HTML 格式输出不安全的用户输入时,使用 htmlspecialchars(),最好在输出时使用,这样您就有了原始数据的副本。

【讨论】:

  • 拥有原始数据副本的好处,保持良好记录的良好做法