在 Ubuntu 上使用 Postman 保护 API 的安全实践
一 传输与客户端基础安全
pm.test("Response over HTTPS", function () {
pm.expect(pm.request.url.protocol).to.equal('https');
});
二 认证与授权机制
Authorization: Bearer {{access_token}}
三 请求级安全控制与自动化
const CryptoJS = require('crypto-js');
const phone = '18211101111';
const optCode = 'testfan';
const salt = 'your_salt';
const ts = Date.now().toString();
const nonce = Math.random().toString(36).substr(2, 8);
const signStr = phone + optCode + salt + ts + nonce;
const sign = CryptoJS.HmacSHA256(signStr, salt).toString(CryptoJS.enc.Hex);
pm.environment.set('phone', phone);
pm.environment.set('optCode', optCode);
pm.environment.set('timestamp', ts);
pm.environment.set('nonce', nonce);
pm.environment.set('sign', sign);
请求体或查询参数中使用占位符:{{phone}}、{{timestamp}}、{{nonce}}、{{sign}}。const jsonData = pm.response.json();
const token = jsonData.access_token || jsonData.token || jsonData.meassage;
pm.environment.set('access_token', token);
四 安全测试与持续验证
// 仅允许 TLS 1.2+
pm.test("TLS 1.2+", function () {
pm.expect(pm.request.tlsVersion).to.be.at.least('TLSv1.2');
});
// 错误响应不含敏感信息
pm.test("No sensitive info in error", function () {
if (pm.response.code >= 400) {
const body = pm.response.text();
pm.expect(body).to.not.include('password');
pm.expect(body).to.not.include('secret');
pm.expect(body).to.not.include('stacktrace');
}
});
五 本地环境安全与操作建议
sudo apt update
sudo apt install snapd
sudo snap install postman