服务公告

服务公告 > 数据与安全 > XSS 攻击的三种类型与过滤时机

XSS 攻击的三种类型与过滤时机

发布时间:2026-10-22 13:59
XSS 的全称是跨站脚本,攻击者在页面里植入恶意脚本,其他用户的浏览器执行后,会话凭据与页面数据就被窃取。按注入位置与触发路径,它分三种类型,防御的关键不在识别类型,而在把住过滤时机。 ## 三种类型 存储型最凶险:恶意脚本随正常内容写入数据库,此后每个浏览该页面的用户都会执行,影响面持续扩大,评论区、个人资料这类可输入可展示的位置是高发区。反射型次之:脚本藏在请求参数里,服务器把参数回显到响应页面执行,通常需要诱导用户点击构造好的链接,单次生效。DOM 型独立于服务端:服务器返回的页面本身干净,前端脚本在浏览器里处理地址栏参数或输入时,把它们不安全地写进了页面结构,脚本在本地被组装执行。 ## 过滤时机的原则 防御 XSS 的根本原则是输出转义:数据在被放进页面结构的那个时刻,按目标上下文转义。为什么不在输入时过滤,因为同一个数据可能流向不同上下文:放进 HTML 标签内、属性内、脚本内、地址内,各自的转义规则不同,输入时无法预知流向,一次过滤无法覆盖所有目的地。输出时按上下文转义,每次都精确对应。这个原则同时解释了存储型的防御:入库的原始数据保留,展示时转义,数据换个场景使用时依然安全。 ## 各类型的补充要点 存储型与反射型由服务端模板负责输出转义,模板引擎的自动转义要确认开启,手动关闭自动转义的位置要逐个复查。DOM 型的防线在前端:操作页面结构避开不安全的接口,优先使用文本节点方式;不可避免时对输入做严格校验;地址栏参数进入页面结构前同样转义。富文本编辑器是特殊战场:内容需要保留格式标签,白名单过滤是唯一可行解,标签与属性逐层筛除。 ## 常见错误 全局过滤输入代替输出转义,流向一多必然漏;依赖一处转义覆盖所有上下文,属性与脚本位置的绕过姿势层出不穷;会话凭据不设防护标志,脚本偷不走也被冒用。顺云用户在应用层落实输出转义,配合传输全程加密,XSS 的生存空间可以被压缩到极小。