xss代码审计建议
XSS代码审计,码审最怕的计建就是只盯着``这种教科书 payload 找。真实项目里,码审漏洞往往藏在“看起来人畜无害”的计建地方。比如一个搜索框,码审前端用 `innerHTML` 把用户输入拼进结果提示里,计建后端还做了 `htmlspecialchars`——但只过滤了 `<` 和 `>`,码审没管 `&` 和引号。计建攻击者输入 `<img src=x onerror=alert(1)>`,码审浏览器解析实体后照样弹窗。计建这种细节,码审扫漏洞的计建工具不一定报,得靠人眼一行行跟。码审 审计时先看输出点,计建别急着翻输入过滤。码审输出点决定了 XSS 的类型和利用方式。常见的有三类:HTML 上下文、属性上下文、JS 上下文。HTML 里直接拼 `用户输入`,那 `<` 和 `>` 必须转义;属性里 ``,得同时处理引号和 `javascript:` 协议;JS 里 `var x = '用户输入'`,单引号、反斜杠、换行符都得管。很多人只做 HTML 实体编码,结果属性里用单引号闭合就绕过了。我见过一个后台,搜索参数回显在 `value='...'` 里,开发者把 `'` 转成了 `'`,但没转 `\`,攻击者输入 `\';alert(1);//`,JS 字符串直接逃逸。
再看过滤逻辑。很多代码用黑名单,比如 `str_replace(['