Spring Boot 接口安全加固:防 SQL 注入 + XSS + CSRF 的三道防线
引言 "渗透测试报告出来了,同一个后台系统三个高危:订单列表的排序参数能拖出整库用户表、订单备注里写一段 <script> 后台运营一查看就中招、攻击者还能借运营的登录态静默发起转账审核。" 三个漏洞的入口各不相同,但修复加起来没超过 200 行代码——因为它们正好对应 Web 安全里最经典的三道防线:SQL 注入、XSS、CSRF。 这三个词几乎每个 Java 开发者都听过,线上的真实情况却是:知道用 #{} 但 order by 场景图省事写成 ${};XSS 只在前端做了转义,接口用 curl 直接打就穿;CSRF 则更隐蔽——"我们是前后端分离 + JWT,应该不用防吧?" 这句话在不少团队里流传,但只要你的 token 放在 Cookie 里自动携带,CSRF 的门就一直敞着。 这篇文章按"攻击原理 → 漏洞代码 → 正确配置/代码 → 绕过手法"的结构,把三道防线一次讲透:SQL 注入靠 MyBatis 预编译 + 参数白名单(防御位置在数据访问层);XSS 靠输入校验 + 输出按上下文编码(防御位置在输出渲染层,输入过滤只是兜底);CSRF 靠 Spring ....