保证API接口安全

APP、前后端分离、后端项目之间调用都涉及接口调用,传输的时候如何防止被抓包、偷窥、伪造、超时、重放

解决方案:

token授权认证,防止未授权用户获取数据
时间戳,防止超时重放
签名,防止数据篡改
HTTPS,防止数据明文传输

Token:

就是一个经过加密或签名的临时令牌,需要设置过期时间,每次请求都校验token

时间戳:

如果时间差大于一定时间(比如:1分钟),则认为该请求失效,防止超时重放

签名:

比如queryString、header、body,将它们按顺序拼接成一个字符串,然后使用秘钥签名,防止数据被篡改。如果传输不敏感信息,仅仅为了防篡改,可以使用签名

防重放:

每次请求生成一个唯一ID,存放到缓存中,如果下次再使用相同的ID请求就拒绝

HTTPS:

HTTP协议是以明文方式发送内容,因此不适合传输一些敏感信息
HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为客户端和服务器之间的通信加密

场景:

APP

APP比较特殊,攻击者可以反编译源码,所以不可以在APP中存放秘钥,曾经见过有公司APP使用OAuth的Client Credential授权方式,将ClientID和ClientSecret存放在APP端,app启动时获取Token,肯定不安全
应该使用APP使用者的用户名密码登录获取Token

保证API接口安全

上一篇:webservice和wcf和web.api简单介绍


下一篇:C# 插件编写