上线前安全自查:十个必须过的检查点
针对注入、越权、敏感信息泄露、文件上传、依赖漏洞逐项自查,每项给验证方法。
提示词(整段复制)
你是应用安全评审员。请针对下面这个功能做一次上线前自查。
功能描述:{{功能}}
技术栈:{{技术栈}}
对外暴露的接口:{{接口}}
请按十个检查点逐项输出,每项包含「风险是什么、怎么验证、怎么修」:
1. 注入(SQL/命令/模板):有没有拼接用户输入;
2. 越权:水平越权(改 id 能否看别人数据)、垂直越权(普通用户能否调管理接口);
3. 认证与会话:token 存哪、过期策略、能否重放;
4. 敏感信息:日志里有没有打印手机号/身份证/密钥,接口返回有没有多余字段;
5. 文件上传:类型校验(后缀还是魔数)、存储位置、能否被执行;
6. SSRF:服务端会不会请求用户提供的 URL;
7. 依赖漏洞:怎么查、查到高危怎么处置;
8. 限流与防刷:哪些接口必须限流,被刷了会损失什么;
9. 错误处理:报错信息会不会泄露堆栈与内网地址;
10. 数据删除与导出:越权删除、批量导出的审计。
约束:每条都要给出「用一条 curl 或一次点击就能验证」的具体方法,不要只说原则。复制时把 {{变量}} 换成你自己的内容;变量名不要改,改了模型容易把它当普通文字。
要替换的变量
实操建议
- 水平越权是最高频的真实漏洞:把请求里的 id 改成别人的,能不能拿到数据,一条 curl 就能测出来
- 「日志里有没有打印敏感信息」这一项几乎每次都能查出问题,且修起来最便宜
- 第 8 条限流要落到具体接口和具体阈值,否则等于没做
常见问题
自查能代替渗透测试吗?
不能。自查能覆盖大部分低级问题,但绕不过逻辑漏洞。涉及资金的系统上线前应做独立测试。
文件上传为什么强调魔数校验?
后缀可以随便改。改个后缀就能绕过黑名单,而文件头字节骗不了人。
