我正在使用HTML Purifier ,一个 PHP“防止 XSS 并确保输出符合标准的过滤器”,用于清理/标准化用户输入的标记。
这是用户输入标记的示例:
<font face="'Times New Roman', Times">TEST</font>
生成:
<span style="font-family:"Times New Roman", Times;">TEST</span>
我有点困惑,因为 "
甚至不是单引号的转义字符。因为我稍后将使用此用户生成的内容,所以这里的最佳实践是什么?
- 保持原样
- 净化器执行后将所有
"
替换为\'
- Configure HTML Purifier不同
- 还有别的事吗?
最佳答案
我觉得还不错。
我认为从单引号到双引号的转换来自这样一个事实:HTML 净化器将整个标记拆开,并根据自己的规则将其重新组合在一起,在引用 style
内的内容时恰好使用双引号属性。
它对我来说也很好。您正在验证什么文档类型?
如果我没有忽略某些事情,我会说按原样使用就可以了。
关于php - 如何处理用户生成的标记中的 ASCII 转义字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3645472/