CentOS下使用Postman进行安全测试的完整流程
安装Postman
访问Postman官网下载适用于Linux(CentOS)的安装包(如.rpm格式),通过终端执行以下命令安装:
sudo rpm -ivh postman_version.rpm
安装完成后,启动Postman并完成初始配置(如创建账户、熟悉界面)。
基础配置
{{api_key}}),避免硬编码在请求中。https://),加密传输数据。构造包含恶意输入的请求,验证API是否能正确过滤非法字符:
' OR 1=1 --、' UNION SELECT * FROM users --等语句,检查响应是否返回异常数据或数据库错误。<script>alert('xss')</script>等恶意脚本,验证响应是否包含未转义的HTML/JavaScript代码。<, >, &)测试API的鲁棒性。验证API的认证机制是否有效:
401 Unauthorized状态码。403 Forbidden。Authorization头中添加Bearer {{token}},测试Token过期或撤销后的访问权限。pm.test("Response should not contain sensitive data", function () {
pm.expect(pm.response.text()).to.not.include("password");
});
构造跨站请求,验证API是否有CSRF防护机制:
X-CSRF-Token等防护头,或要求请求中携带CSRF Token。查看响应头是否包含以下安全设置,可通过Postman的「Headers」标签页或「Tests」脚本验证:
Content-Security-Policy:限制资源加载来源,防止XSS。X-Content-Type-Options: nosniff:防止MIME类型嗅探攻击。X-XSS-Protection: 1; mode=block:启用浏览器XSS防护。Strict-Transport-Security:强制使用HTTPS。测试脚本编写
在Postman的「Tests」标签页中编写JavaScript脚本,自动化验证安全指标:
pm.test("Status code is 200", function () { pm.response.to.have.status(200); });pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); });(可选,辅助性能与安全关联分析)。集合运行与CI/CD集成
newman run collection.json)实现自动化测试,集成到Jenkins、GitLab CI等CI/CD管道,每次代码提交后自动执行安全测试。第三方插件辅助
虽然Postman原生功能有限,但可通过以下方式增强安全测试能力: