API 接口已经有 HTTPS 的前提下,为什么还需要签名机制?
注意场景:
- 服务端对服务端的接口,不是客户端对服务端的接口
- 防止中间人可以 PINNED Pub Key,因此中间人攻击不在考虑范围内
- 极端条件可以使用客户端证书
综合以上三点。为什么在 Https 的保护下,还要额外做签名验证?
主要疑问,如 stripe 的退款接口
curl https://api.stripe.com/v1/refunds -u "$密钥:" -d charge=$charge_id
就可以发起一笔订单的退款或者扣款。按照某些论述的话,没有签名的 Stripe 岂不是非常危险?