OAuth2.0协议

OAuth 2.0 的四种方式

Oauth2.0详解及安全使用

微信网页开发-网页授权

具体而言,网页授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

OAuth2.0的安全解析

风险1:redirect_url 回调域名欺骗

服务端必须验证clientid注册的应用与redirect_url是对应的,否则redirect_url会被伪造成第三方欺诈域名,直接导致服务器返回Code被泄露;

服务器生成的临时Code必须是一次有效,客户端使用一次后立即失效并且有效期很短,一般推荐30s有效期,由于Code是通过redirect_url浏览器回调传输容易被截取,可以保证临时Code被客户端正常消费后不会被再次使用;

风险2:redirect_url XSS跨域攻击

比如构造一个认证请求,redirect_uri = http://app.com/test?callback= 服务器端需要对redirect_url进行检查禁止特殊字符输入,并且对redirect_url进行全匹配,不做模糊匹配可以杜绝XSS攻击;

风险3:State 防止CSRF

认证请求url中state参数是最容易被忽略的,大部分IDP不会强制要求客户端使用state参数;

客户端每次请求生成唯一字符串在请求中放到state参数中,服务端认证成功返回Code会带上state参数,客户端验证state是否是自己生成的唯一串,可以确定这次请求是有客户端真实发出的,不是黑客伪造的请求;

风险4:Access_Token泄露

由于Access_Token是通过http协议从服务器端传输给客户端,为了防止旁路监听泄露Access_Token,服务器必须提供https来保证传输通道的安全性(TSL的要求);

客户端获取Access_Token,应该在后台与服务端交互获取Access_Token,不允许Access_Token传给前端直接使用;

需要保证Access_Token信息的不可猜测行,以防止被猜测得到;

风险5:令牌有效性漏洞

维持refresh_token和第三方应用的绑定,刷新失效机制的设计不允许长期有效的token存在;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值