收藏
回答

oauth2网页授权被伪造(请求)

通过抓包的方式,在用户A点击授权按钮后,截取授权构造链接,例如:

GET /connect/oauth2/authorize?appid=APPID&redirect_uri=URL&response_type=code&scope=snsapi_userinfo&state=STATE&

uin=MTkyNTY5NzYw&key=73215c3bec983c8b62b54a3648dac9b226d106621760e6317fbfeea1109f2e32840aadf999fc88ff823981c9659e5770c7abbd6e734593e318ce05e106587f225f8d9bd828962e419f81b82c90afd230&version=62070158&

pass_ticket=IzQKVTFVc%2BBx4kczrgOOk%2FSbC9PQuOccDtZVVEZB%2BHU%3D

HTTP/1.1

将此链接发送给其他微信号。其他用户在向微信服务器发送授权确认时,篡改链接。这样就能在其他微信(pc端)伪造出用户A的授权请求。

三方服务器得到的CODE和token都是篡改钱用户A的openid和token。


这给我们基于oauth2授权获得openid 进行身份辅助认证造成了极大的困扰。

请尽快给出解决方案。


回答关注问题邀请回答
收藏

1 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    01-06

    你好,接口中通过access_token可以确认真实的用户身份

    01-06
    赞同
    回复 2
    • 张哲
      张哲
      01-07
      我已对openid和token进行了验证,而且每次服务器发过的code也是正常的。这个操作是对用户授权的链接进行了伪造。我的服务器接收到的code和我code换回来的openid以及授权token都没有问题。你看我提问发的示意链接,别人构造和篡改的链接地址,那个其实是用户授权后构造的url。在微信回调我们服务器之前,这个请求被复用和伪造了。所以后续的code以及token都没法验证。请你在核实这个问题。
      01-07
      回复
    • 张哲
      张哲
      01-07
      http:GET(请使用https协议) https://api.weixin.qq.com/sns/auth?access_token=ACCESS_TOKEN&openid=OPENID,我已经使用该接口对网页授权的openid和token进行了二次验证,毫无问题。其实这个问题是用户点击同意授权和别的微信授权跳转时候,截断了网络请求(包)然后更改了请求地址。就是我提问中那个地址。然后微信服务器误认为是同一个微信用户允许授权。所以,微信服务器生成的code就是被欺瞒后的code。我接收到code,换取token,获得openid 统统都出现了问题。如果你还是不懂我说的什么意思。请你联系我,我可以在电脑上进行重现给您看。
      01-07
      回复
登录 后发表内容
问题标签