sudo rpm -ivh Postman-linux-x64-*.rpm)。安装完成后,启动Postman并登录账户(便于保存请求、集合及环境变量)。base_url、api_key),通过{{variable_name}}引用,提升安全性。?id=1或POST的请求体{"username":"admin'--"})中插入恶意SQL代码,发送请求后检查响应。若返回所有用户数据或数据库错误信息(如You have an error in your SQL syntax),则存在漏洞。<script>alert('XSS')</script>),发送请求后检查响应内容是否包含该脚本。若响应中存在未过滤的脚本,说明API未对输入进行有效编码。Authorization: Bearer invalid_token)访问受保护接口(如/admin),预期响应应为401 Unauthorized或403 Forbidden。/admin/delete),验证API是否严格校验用户权限。Strict-Transport-Security(HSTS)头,确保浏览器强制使用HTTPS。X-CSRF-Token头)。若未要求且能成功执行敏感操作(如转账),则存在CSRF漏洞。使用Postman集合:
将常用安全测试请求(如SQL注入、XSS)保存为集合(Collection),通过Runner功能批量运行,自动化执行多轮测试,节省时间。
编写测试脚本:
在请求的Tests标签页中编写JavaScript脚本,验证响应是否符合安全标准。例如:
// 检查响应是否包含敏感信息
pm.test("Response should not contain sensitive data", function () {
const responseText = pm.response.text();
pm.expect(responseText).to.not.include("password");
pm.expect(responseText).to.not.include("credit_card");
});
// 验证JWT令牌有效性
pm.test("JWT token is valid", function () {
const token = pm.response.json().token;
pm.expect(token).to.be.a('string');
pm.expect(token.split('.').length).to.eql(3); // JWT标准结构(header.payload.signature)
});
脚本可自动断言响应内容,及时发现安全问题。
集成CI/CD工具:
将Postman集合导出为JSON文件,通过Newman(Postman命令行工具)集成到Jenkins、GitLab CI等CI/CD流程中。例如,Jenkinsfile脚本可配置为每次代码提交后自动运行Newman测试:
pipeline {
agent any
stages {
stage('Run Postman Security Tests') {
steps {
sh 'newman run "API_Security_Tests.postman_collection.json" --environment "test_env.postman_environment.json"'
}
}
}
}
实现测试自动化,确保每次代码变更后及时检测安全漏洞。