故障现象或目标
页面需要展示用户输入或富文本。
原因与定位
纯文本输出与允许部分 HTML 的富文本需要不同处理。
htmlspecialchars($text, ENT_QUOTES | ENT_SUBSTITUTE, "UTF-8");
处理方案
纯文本按输出上下文转义;富文本使用明确的标签和属性白名单,同时处理 URL 协议。不要只删除 script 标签就认为输入已经安全。
验证与回退
测试文本作为内容显示,富文本保留允许的排版并移除事件、危险协议和嵌入对象。
修改前保留配置与程序版本。验证不通过时恢复本次文件或上一个发布版本,再检查服务状态与访问日志。