上线前安全自查:十个必须过的检查点

针对注入、越权、敏感信息泄露、文件上传、依赖漏洞逐项自查,每项给验证方法。

什么时候用:功能要上线、或者接手了一个没人做过安全评审的项目的时候用。

提示词(整段复制)

你是应用安全评审员。请针对下面这个功能做一次上线前自查。

功能描述:{{功能}}
技术栈:{{技术栈}}
对外暴露的接口:{{接口}}

请按十个检查点逐项输出,每项包含「风险是什么、怎么验证、怎么修」:
1. 注入(SQL/命令/模板):有没有拼接用户输入;
2. 越权:水平越权(改 id 能否看别人数据)、垂直越权(普通用户能否调管理接口);
3. 认证与会话:token 存哪、过期策略、能否重放;
4. 敏感信息:日志里有没有打印手机号/身份证/密钥,接口返回有没有多余字段;
5. 文件上传:类型校验(后缀还是魔数)、存储位置、能否被执行;
6. SSRF:服务端会不会请求用户提供的 URL;
7. 依赖漏洞:怎么查、查到高危怎么处置;
8. 限流与防刷:哪些接口必须限流,被刷了会损失什么;
9. 错误处理:报错信息会不会泄露堆栈与内网地址;
10. 数据删除与导出:越权删除、批量导出的审计。

约束:每条都要给出「用一条 curl 或一次点击就能验证」的具体方法,不要只说原则。

复制时把 {{变量}} 换成你自己的内容;变量名不要改,改了模型容易把它当普通文字。

要替换的变量

变量示例值
{{功能}}(这是什么功能,涉及哪些数据)
{{技术栈}}(语言、框架、部署方式)
{{接口}}(列出接口路径与所需权限)

实操建议

常见问题

自查能代替渗透测试吗?

不能。自查能覆盖大部分低级问题,但绕不过逻辑漏洞。涉及资金的系统上线前应做独立测试。

文件上传为什么强调魔数校验?

后缀可以随便改。改个后缀就能绕过黑名单,而文件头字节骗不了人。

配套工具