如何防止API接口被恶意调用
1. 客户端防护
1.客户端双向认证。在app中预置证书(跨平台也是一致的方案),要求更高的话使用专用的证书设备,线下签发,例如银行的U盾。 2.客户端双反hook,反调试,防逆向。 3.客户端运行环境校验,通过读取硬件信息识别pc还是移动设备以及设备MAC相关信息。
2. 传输层防护
1.传输协议防护,首先接口建议使用 HTTPS 协议,这样至少会给破解者在抓包的时候提高一些难度。
3. 服务端防护
1.验证签名与授权信息是否合法,是否失效。 2.参数合法性校验,例如时间戳和参数签名校验。过滤一些非法参数。 3.数据加密,签名可以采用非对称加密,参数采用对称加密,密匙采用非对称的私匙。 4.定时更新签名以及加密信息。 5.接口监控,接口的使用设备,使用频率,调用顺序是否合法。 6.风控策略防护,有一点作用但是对于有明确指向性的攻击意义不大,IP可以换,频率可以变,很容易就绕过了,策略的设计上要注意尽量少用短命的规则,而且一般只对低级别的对抗有效。 7.通过风控平台进行用户行为分析,数据挖掘,然后通过机器学习形成风控模型,对风险进行全方位识别,预警以及管控。
4. 安全鉴权案例
4.1 微盟开放平台
微盟也是根据OAuth2.0授权流程实现。
微盟鉴权文档地址: