大部分接口为了防御重放攻击,往往使用SHA1或者MD5对请求进行签名,例如,我们有如下请求:
Request URL:
http://xx.xx.xx.xx/?nonce='123'×tamp='123'
Body:
{
"xxx":"xxx"
}
signature = SHA1(字段组合)
字段组合可以是nonce+timestamp+body,有时还会加上一个约定好的secret
将signature放入头部
Headers:
{
"signature": "xxxxxxxxxx"
}
而使用postman进行请求测试时,我们可以通过Rre-request Script在请求前生成变量signature
- 再将变量填入头部
var message = request.data;
var nonce = pm.request.url.query.get('nonce');
var timestamp = pm.request.url.query.get('timestamp');
var secret = '2020090101';
var content = message + '-' + nonce + '-' + secret + '-' + timestamp
var signature = CryptoJS.SHA1(content).toString();
console.log(content);
console.log(signature);
// 设置为全局变量
postman.setGlobalVariable("signature", signature);
- 在Headers中填入变量{{signature}}
- 发送请求