不安全。htmlspecialchars()仅转义5个字符,无法防御onerror、data:协议、CSS expression等XSS载体;AI返回含标签HTML时必须用HTMLPurifier或DOMDocument白名单清洗,并严格校验URI协议与属性。

PHP中用htmlspecialchars()处理AI返回的HTML是否安全?
不安全。AI返回的HTML可能含
立即学习“PHP免费学习笔记(深入)”;
-
strip_tags($html, ['p','br'])会保留<p onclick="fetch('/api/xss')">,而onclick仍是可执行的 - 遇到
<style>body{background:url(javascript:alert(1))}</style>,strip_tags()连<style>都删不掉(因为不是“标签对”,是单个<style>开始) - 更隐蔽的是
<img src=x onerror=alert(1)>——strip_tags()认为这是合法img标签,放行后浏览器立刻报错并执行
真正难防的不是明面上的<script>,是那些混在属性值、CSS、注释、编码绕过里的执行入口。处理AI输出,得默认它“不可信”,而不是“看起来干净”。


















