浅谈如何保证API接口安全性

本文探讨了保障API接口安全的方法,包括使用token进行身份验证,利用timestamp防止DoS攻击,以及sign签名机制确保参数不被篡改。同时,介绍了防止重复提交的策略,并给出了相关伪代码示例。
摘要由CSDN通过智能技术生成

在实际的业务中,需要通过定义各种接口规范来保证传输的安全性。

token

访问令牌access token,用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个接口调用的账号,服务器会给出一个appId和一个key, key用于参数签名使用,注意key保存到客户端,需要做一些安全处理,防止泄露。

服务端生成Token后需要将token作为key,将一些和token关联的信息作为value保存到缓存服务器中(redis),当一个请求过来后,服务器就去缓存服务器中查询这个Token是否存在,存在则调用接口,不存在返回接口错误,一般通过拦截器或者过滤器来实现。

Token分为两种:

  • API Token(接口令牌):用于访问不需要用户登录的接口,如登录、注册、一些基本数据的获取等。 获取接口令牌需要拿appId、timestamp和sign来换,sign=加密(timestamp+key)
  • USER Token(用户令牌):用于访问需要用户登录之后的接口,如:获取我的基本信息、保存、修改、删除等操作。获取用户令牌需要拿用户名和密码来换

timestamp

客户端调用接口时对应的当前时间戳,用于防止DoS攻击。每次调用接口时接口都会判断服务器当前系统时间和接口中传的的timestamp的差值,如果这个差值超过某个设置的时间,那么这个请求将被拦截掉。

缺点

  • 如果在设置的超时时间范围内,是不能阻止DoS攻击的。
  • 攻击方可以修改时间戳,需要通过sign签名机制来处理。 

sign签名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值