为什么需要API接口签名
对外开放的API接口都会面临一些安全问题,例如伪装攻击、篡改攻击、重放攻击以及数据信息泄漏的风险。利用API接口签名能方便的防范这些安全问题和风险。在设计API接口签名时主要考虑以下几点:
保证请求数据正确
当请求中的某一个字段的值变化时,原有的签名结果就会发生变化。只要参数发生变化,签名就要发生变化,否则请求将会是一个无效的请求。
保证请求来源合法
一般情况下,生成签名的算法都会成对出现一个appKey和一个appSecret,根据appKey能识别出调用者身份;根据appSecret能识别出签名是否合法。
识别接口的时效性
一般情况下,签名和参数中会包含时间戳,这样服务端就可以验证客户端请求是否在有效时间内,从而避免接口被长时间的重复调用。
API接口签名验签实现机制
签名验签流程
客户端向服务端申请appKey,appSecret,服务端下发appKey,appSecret。
客户端集成SDK产生sign,将appKey,请求参数,时间戳,sign发送到服务端,服务端根据请求参数使用SDK中的签名规则生成签名来验证sign的合法性,之后返回结果。
代码实现
参考文档:请求签名-短信服务-阿里云
文章为作者独立观点,不代表股票交易接口观点