php - 如何处理用户生成的标记中的 ASCII 转义字符?

标签 php xhtml ascii web-standards user-generated-content

我正在使用HTML Purifier ,一个 PHP“防止 XSS 并确保输出符合标准的过滤器”,用于清理/标准化用户输入的标记。

这是用户输入标记的示例:

<font face="'Times New Roman', Times">TEST</font>

生成:

<span style="font-family:&quot;Times New Roman&quot;, Times;">TEST</span>

我有点困惑,因为 " 甚至不是单引号的转义字符。因为我稍后将使用此用户生成的内容,所以这里的最佳实践是什么?

最佳答案

我觉得还不错。

我认为从单引号到双引号的转换来自这样一个事实:HTML 净化器将整个标记拆开,并根据自己的规则将其重新组合在一起,在引用 style 内的内容时恰好使用双引号属性。

它对我来说也很好。您正在验证什么文档类型?

如果我没有忽略某些事情,我会说按原样使用就可以了。

关于php - 如何处理用户生成的标记中的 ASCII 转义字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3645472/

相关文章:

c - 有没有更好的方法来确定多个字符范围?

javascript - 基于XML文件的页面生成(PHP、Jquery)

php - 获取 php 提示和教程作为每日电子邮件,以提高 php 编程知识

php - 无法使用 crontab 运行 shell 脚本

php - 内部加入 3 个表

javascript - 如何在此 jquery slider 中添加 "pause"按钮?

javascript - 如何制作自定义、无需编辑、防弹jquery的无冲突版本?

html - 如何在固定高度 <div> 的中间垂直对齐 <table>?

ascii - Ada 中将字符串转换为 ascii

file - Rust:如何从文件中读取十六进制