| name | test-api-security |
| description | 执行API权限与安全防护测试,包括安全漏洞测试和认证授权测试。支持Playwright MCP,适用于安全审计、上线前安全检查、安全漏洞修复验证等场景。 |
API权限与安全防护测试
技能概述
本技能用于执行API的权限与安全防护测试,验证系统的访问控制和抗攻击能力,保障数据和系统安全。
技术栈:Playwright MCP工具
测试类型:安全测试(漏洞检测)、认证授权测试(权限控制)
报告格式:Markdown
测试场景
1. 安全测试用例
验证常见漏洞和攻击,确保系统能够抵御各种安全威胁。
测试要点:
- SQL注入攻击
- XSS跨站脚本攻击
- CSRF跨站请求伪造
- 命令注入
- 路径遍历
- 文件包含漏洞
- 敏感信息泄露
- 不安全的反序列化
- 不安全的直接对象引用
- 认证绕过
2. 认证授权测试用例
验证不同角色的权限和访问控制,确保系统实施了正确的认证授权机制。
测试要点:
- 未认证访问
- 认证绕过
- 权限提升
- 水平越权
- 垂直越权
- 会话管理
- Token安全
- 密码策略
测试检查清单
在执行测试前,请按以下清单逐项检查和执行:
✅ 准备阶段检查清单
✅ 安全测试检查清单
SQL注入测试:
XSS跨站脚本攻击测试:
CSRF跨站请求伪造测试:
命令注入测试:
路径遍历测试:
其他安全漏洞测试:
✅ 认证授权测试检查清单
认证测试:
授权测试:
水平越权测试:
垂直越权测试:
会话管理测试:
Token安全测试:
密码策略测试:
✅ 测试报告检查清单
⚠️ 注意事项
- 每完成一个检查项,请及时标记为已完成
- 安全测试时注意不要对生产环境造成破坏
- 如发现安全漏洞,需记录详细信息和复现步骤
- 如发现认证绕过问题,需记录详细信息和复现步骤
- 如发现越权访问问题,需记录详细信息和复现步骤
- 测试过程中如发现问题,及时记录并反馈
- 确保测试报告包含完整的安全风险评估和修复建议
- 测试完成后及时清理测试数据
测试执行流程
步骤1:收集测试信息
在开始测试前,需要收集以下信息:
- 业务名称:用于组织测试报告目录
- 接口名称:被测试的API接口名称
- 接口URL:完整的API端点地址
- 请求方法:GET、POST、PUT、DELETE等
- 请求头:Content-Type等
- 请求参数:参数列表、类型、是否必填、取值范围
- 认证信息(可选):如需认证,提供Token键值对列表(支持多个token)
- Token 1的key:例如 Authorization、token、X-Auth-Token、lesseeadmintoken、lesseemanagetoken
- Token 1的value:例如 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9(直接提供token值,无需添加"Bearer"前缀)
- Token 2的key:(如需要多个token,继续提供)
- Token 2的value:(如需要多个token,继续提供)
- 以此类推...
- 角色定义:系统中的角色及其权限
- 数据库配置(可选):如需验证数据库安全,提供数据库连接信息
- 数据库地址(host):例如 localhost
- 数据库端口(port):例如 3306
- 数据库用户名(user):例如 root
- 数据库密码(password):例如 password
- 数据库名称(database):例如 test_db
步骤2:执行安全测试
使用Playwright MCP工具执行安全测试:
支持的HTTP方法:
- GET:查询数据
- POST:创建数据
- PUT:更新数据(全量)
- PATCH:更新数据(部分)
- DELETE:删除数据
测试执行流程:
-
SQL注入测试:
- 在输入参数中注入SQL语句
- 尝试获取或篡改数据库数据
- 验证系统是否正确拒绝
-
XSS跨站脚本攻击测试:
- 在输入参数中注入恶意脚本
- 尝试在用户浏览器中执行
- 验证系统是否正确转义或拒绝
-
CSRF跨站请求伪造测试:
- 移除CSRF Token
- 修改Referer头
- 验证系统是否正确拒绝
-
命令注入测试:
- 在输入参数中注入系统命令
- 尝试在服务器上执行命令
- 验证系统是否正确拒绝
-
路径遍历测试:
- 在路径参数中使用特殊字符
- 尝试访问系统文件
- 验证系统是否正确拒绝
步骤3:执行认证授权测试
使用Playwright MCP工具执行认证授权测试:
-
认证测试:
- 无Token访问受保护资源
- 使用无效Token访问
- 使用过期Token访问
- Token重放攻击测试
-
授权测试:
- 普通用户访问管理员接口
- 用户A访问用户B的数据
- 修改请求中的角色参数
-
水平越权测试:
-
垂直越权测试:
步骤4:生成测试报告
测试完成后,生成Markdown格式的测试报告,报告保存在以下目录:
doc/{业务名称}/测试报告/权限与安全防护/{测试接口名称}_{时间戳}.md