sudo rpm -ivh postman-version.rpm完成安装。https://开头,避免敏感数据(如API密钥、用户凭证)在明文HTTP中传输;可通过Postman的“Settings → General”确认“SSL certificate verification”已启用。{{api_key}}),而非硬编码在请求中;在Postman“Settings → General”中勾选“Disable saving sensitive properties”禁用敏感信息保存。http://127.0.0.1:8080)。输入验证测试
构造包含特殊字符、异常长输入或SQL命令的请求,验证API是否能正确过滤恶意输入。例如:
' OR 1=1 --(如/api/data?query=' OR 1=1 --),若返回所有数据而非空结果或错误,说明存在SQL注入漏洞。message字段)中添加<script>alert('xss')</script>,若响应中包含未转义的脚本标签,说明存在XSS漏洞。认证与授权测试
/api/v1/users/me),不发送任何认证信息(如Authorization头),若返回200 OK而非401 Unauthorized,说明认证机制失效。user_id: 1001改为user_id: 1),若服务器接受篡改后的Token并返回高权限数据,说明未验证令牌签名。/api/logout)使Token失效,再用旧Token访问受保护端点(如/api/v1/users/me),若仍能成功,说明令牌未及时失效。/api/v1/admin/create-user),若返回200 OK而非403 Forbidden,说明存在权限提升漏洞。数据加密测试
检查响应头是否包含安全相关的HTTP头,如:
Content-Security-Policy:防止XSS攻击;X-Content-Type-Options: nosniff:防止MIME类型嗅探;X-XSS-Protection: 1; mode=block:启用浏览器XSS防护。CSRF防护测试
尝试构造跨站请求(如通过HTML表单或Postman发送POST请求),检查API是否要求CSRF Token(如X-CSRF-Token头)。若未要求且能成功修改数据(如删除用户),说明CSRF防护缺失。
编写测试脚本
在Postman的“Tests”标签页中编写JavaScript脚本,验证响应的安全性。例如:
// 检查响应是否包含敏感数据
pm.test("Response should not contain sensitive data", function () {
pm.response.to.not.include("password");
pm.response.to.not.include("api_key");
});
// 检查状态码是否为401(未授权)
pm.test("Unauthorized access should return 401", function () {
pm.response.to.have.status(401);
});
集合运行与自动化
将安全测试用例组织到集合(Collection)中,使用Postman的“Runner”功能批量运行集合,或结合Newman命令行工具(newman run security_collection.json)实现持续集成(如与Jenkins联动)。
注意事项: