从"被攻击了/数据泄露了"出发,顺藤摸瓜理解每种攻击的本质和防御
<script> 被当代码执行 → Vue 的 {{}} 默认转义安全,v-html 危险"SELECT * FROM user WHERE name='" + input + "'" → 输入 ' OR 1=1 -- → 变成 WHERE name='' OR 1=1 → 永真,返回所有用户| 攻击 | 本质 | 防御核心 |
|---|---|---|
| XSS | 用户输入被当代码执行 | 转义/DOMPurify/CSP |
| CSRF | 冒充你发请求(Cookie 自动带) | CSRF Token/SameSite |
| 越权 IDOR | 后端没校验资源归属 | 后端校验 userId 匹配 |
| SQL 注入 | 输入拼接到 SQL | 参数化查询(#{} / PreparedStatement) |
| Token 被偷 | 存储方式有漏洞 | 内存+HttpOnly Cookie 权衡 |