|
|
1
2
有三种类型的数据(来自安全POV)可以输出到HTML中:
(请注意,HTML属性和某些元素是特殊情况,例如onclick属性需要HTML编码的JavaScript,因此您的数据需要是HTML安全的 和 JS安全)。
如果是文本,则使用
如果它是可信的HTML,那么只输出它。 如果它是不受信任的HTML,则需要对其进行清理以使其安全。这通常意味着使用DOM解析器对其进行解析,然后删除白名单上未显示为安全的所有元素和属性(某些属性可能会使用特殊大小写进行筛选,而不是剥离),然后将DOM转换回HTML。像HTML Purifier这样的工具可以做到这一点。
然后是第三种情况,需要过滤HTML。 |
|
|
2
2
|
|
|
3
1
如果您确定内容,请输出纯HTML。在所有其他资源上使用htmlspecialchars,特别是对于用户输入,以防止安全问题。 |