在接口设计中,腾讯,淘宝等,在用secretKey对所有的参数(参数需要排序)进行签名,确保参数不被篡改。
这样有必要吗?比如我只对时间戳,随机数,签名。这样不是也能达到无法篡改参数的目的吗?
换句话说,如果我的请求参数的json中,是嵌套类型的,post请求,此时再去对所有参数签名,对服务器跟客户端的开发来说,都增加了难度,非常容易出错。
比如下面这种json,加所有参数签名,不是非常麻烦吗?
{
"timestamp": "2019-08-28 16:39:00",
"nonce": "12345678912",
"appKey": "testappkey",
"sign": "tes"
"param": {
"testa": "1",
"code": "123"
}
}
项目:JFinal
有了签名机制无论在 https 还是 http 通道内都是安全的(当然,没有绝对的安全)
签名机制不要考虑是不是麻烦,而是要考虑是否有必要