安全测试面试题¶
安全测试面试重点包括 OWASP Top 10、常见漏洞原理、测试工具和防护方案。
OWASP Top 10 有哪些?¶
2021 版 OWASP Top 10:
1. 访问控制失效(Broken Access Control)
2. 加密机制失效(Cryptographic Failures)
3. 注入(Injection):SQL 注入、XSS、命令注入
4. 不安全设计(Insecure Design)
5. 安全配置错误(Security Misconfiguration)
6. 过期组件(Vulnerable Components)
7. 身份认证失效(Authentication Failures)
8. 软件和数据完整性失效(Integrity Failures)
9. 安全日志和监控失效(Logging Failures)
10. 服务端请求伪造(SSRF)
SQL 注入怎么测试?¶
测试方法:
1. 在输入框输入特殊字符:' " ; -- /*
2. 观察是否返回数据库错误信息
3. 用永真条件测试:' OR 1=1 --
4. 用 UNION 查询测试:' UNION SELECT username,password FROM users --
防护方式:
- 参数化查询(PreparedStatement)
- 输入校验和转义
- 最小权限原则(数据库账号不用 root)
- WAF 拦截
XSS 有哪几种类型?¶
三种类型:
1. 反射型 XSS
- 恶意脚本在 URL 中,点击后执行
- 例:搜索框输入 <script>alert(1)</script>
2. 存储型 XSS
- 恶意脚本存入数据库,所有访问页面的用户都会执行
- 例:评论区输入恶意脚本
3. DOM 型 XSS
- 前端 JavaScript 直接操作 DOM 导致
- 不经过服务端
防护方式:
- 输出编码(HTML、JS、URL 编码)
- Content-Security-Policy(CSP)头
- HttpOnly Cookie(防止脚本读取)
CSRF 和 XSS 有什么区别?¶
XSS:利用用户对网站的信任
- 攻击者注入恶意脚本到网站
- 脚本在用户浏览器中执行
CSRF:利用网站对用户的信任
- 攻击者诱导用户访问恶意页面
- 恶意页面自动发送请求到目标网站
- 浏览器自动携带 Cookie,网站以为是用户操作
防护方式:
- CSRF Token
- SameSite Cookie
- 检查 Referer/Origin 头
怎么测试越权漏洞?¶
水平越权:A 用户能访问 B 用户的数据
测试:用 A 的 token 请求 B 的资源
例:修改 URL 中的 user_id 从 1 改成 2
垂直越权:普通用户能执行管理员操作
测试:用普通用户的 token 请求管理员接口
例:用普通用户 token 调用删除用户接口
测试要点:
- 所有接口都要测(不能只测登录后的页面)
- 修改请求参数(ID、角色、权限标识)
- 直接访问管理页面的 URL
Burp Suite 怎么用?¶
基本流程:
1. 配置浏览器代理 → 127.0.0.1:8080
2. 拦截请求(Intercept)
3. 修改请求参数后放行(Forward)
4. 发送到 Repeater 手动测试
5. 发送到 Intruder 自动化测试(暴力破解、Fuzzing)
常用模块:
- Proxy:拦截和修改请求
- Repeater:手动重放请求
- Intruder:自动化攻击(参数遍历、密码爆破)
- Scanner:自动扫描漏洞(商业版)
密码存储应该怎么设计?¶
绝对不能:
- 明文存储密码
- 用 MD5/SHA1 哈希(容易被彩虹表破解)
应该用:
- bcrypt、scrypt、Argon2 等慢哈希算法
- 加盐(salt):每个用户独立的随机盐
- 迭代次数足够多(增加破解成本)
测试要点:
- 数据库中密码不是明文
- 相同密码在数据库中存储值不同(因为盐不同)
- 无法反向还原密码
HTTPS 和 HTTP 有什么区别?¶
HTTP:明文传输,数据容易被窃听和篡改
HTTPS = HTTP + TLS/SSL:
- 加密:数据传输加密,防窃听
- 身份验证:证书验证服务器身份
- 完整性:防篡改
测试要点:
- HTTP 请求是否自动跳转 HTTPS
- 证书是否有效(过期、自签名)
- 是否启用 HSTS
- 敏感接口是否强制 HTTPS
安全测试和渗透测试有什么区别?¶
安全测试:广义的安全验证
- 代码审计、配置检查、权限验证、日志审计
- 目标:发现安全风险
渗透测试:模拟黑客攻击
- 信息收集、漏洞利用、权限提升
- 目标:验证漏洞可被利用
测试人员主要做:
- 安全测试:SQL 注入、XSS、越权、敏感信息泄露
- 渗透测试通常由专业安全团队做
面试评分参考¶
| 维度 | 初级(1-2年) | 中级(3-5年) |
|---|---|---|
| 漏洞认知 | 知道 OWASP Top 10 | 能解释原理和防护方案 |
| 测试方法 | 会用 Burp Suite 抓包改参 | 能设计完整的安全测试方案 |
| 工具使用 | 会用基本工具 | 能编写自动化安全测试脚本 |
| 报告输出 | 能记录漏洞 | 能评估风险等级、给出修复建议 |