首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

针对近期“博全球眼球的OAuth漏洞”的分析与防范建议

问题的原因在于OAuth的提供方提供OAuth授权过程中没有对回调的URL进行校验,从而导致可以被赋值为非原定的回调URL,就可以导致跳转、XSS等问题,甚至在对回调URL进行了校验的情况可以被绕过,具体将在附件中的...OAuth 2.0授权框架允许第三方应用程序获得指定HTTP服务的有限的访问权限。...问题的原因在于OAuth的提供方提供OAuth授权过程中没有对回调的URL进行校验,从而导致可以被赋值为非原定的回调URL,甚至在对回调URL进行了校验的情况可以被绕过。...漏洞成因、利用及危害 3.1.漏洞利用 部分OAuth 2.0提供未对回调URL进行校验甚至校验可以被绕过的情况下,黑客可以通过构造钓鱼页面,用户在访问了黑客构造的页面之后,可以被获取OAuth授权中最终返回的...回调校验绕过 部分OAuth提供方在进行的回调URL校验后存在被绕过的情况。 如: https://api.xxx.com/oauth2/authorize?

1K100

一篇文章看懂 OAuth2

授权码类型的流程如下: 用户访问客户端后,客户端引导用户访问授权服务器,通常情况下,在用户触发某些操作后,客户端会跳转授权服务器,跳转链接一般会携带客户端重定向链接,便于授权服务器重定向回客户端。...用户允许授权后,授权服务器使用重定向链接跳转回客户端,并在重定向链接后以 hash 形式(类似于 #foo,浏览器中的网页链接的 hash 不会随请求发送给服务器)拼接访问令牌。...Authorization callback URL 一项中填写的是用户授权后,授权服务器的回调地址。...client_id=' + clientId) 获取授权 授权回调处理 服务端定义 GitHub 授权回调路由,并使用回调参数交换访问令牌,再使用访问令牌获取用户信息。...code) { ctx.throw(400, '回调 URL 无 code 字段') return } // GitHub OAuth 要求参数 const param =

1.7K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    手机端公众号内的微信第三方登录

    1、OAuth2.0简介 OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。   ...这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。   ...3)、配置回调函数   我们在微信客户端访问第三方网页(即我们自己的网页)的时候,我们可以通过微信网页授权机制,我们不仅要有前面获取到的appid和appsecret还需要有当用户授权之后,回调的域名设置...appID、appsecret的获取; 关注我们测试的公众号; 配置扫码用户授权后回调的域名。...回调地址:填写为刚才上传后的oauth.php的文件地址,   state参数:随便一个数字,这里填123 尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验

    3.1K20

    Spring Cloud Security配置OAuth2客户端来访问受保护的API示例

    在GitHub上注册应用程序时,我们需要提供回调URL,该URL将在用户授权后重定向回我们的应用程序。...我们可以使用http://localhost:8080/login/oauth2/code/github作为回调URL,这是Spring Security默认的OAuth2回调URL。...我们允许所有用户访问/login/**,并对其他所有请求进行身份验证。我们还使用.oauth2Login()配置了OAuth2登录流程。...我们指定客户端ID为“github”,授权类型为“authorization_code”,并指定要获取的权限范围和重定向URI。最后,我们需要定义一个Controller来访问受保护的资源。...如果用户已经通过OAuth2登录,并且已经授权了我们的应用程序,则可以成功访问该资源。如果用户没有登录或未授权,则将重定向到OAuth2提供程序的登录页面。

    2.3K20

    OAuth2.0理解和用法

    OAuth2.0是什么 官方介绍是: OAuth 2.0授权框架允许第三方应用程序通过协调资源所有者和HTTP服务之间的审批交互,或允许第三方应用程序自己获得访问权限,从而获得对HTTP服务的有限访问。...1.微信用户通过浏览器访问了石墨文档,然后登陆页,然后点了微信登录按钮 这时候,浏览器请求石墨微信登录回调地址,石墨后台返回302,response附属location....微信认证成功后,回调的时候会原样返回给石墨(client)。如果没这个,client接收参数就只有code,别人就是随意伪造碰撞code。...而石墨生成了一次性token作为state,回调接口只有一次有效期。...2.认证成功后,回调地址中的access_token qq认证成功后的示例: http://graph.qq.com/demo/index.jsp?

    1.3K30

    喜大普奔,Gitee最新版本API推出了以gitee作为资源认证服务器的的OAuth2认证

    ,需要在上面第一步的 URL 加上 scope 参数,且 scope 的值需要和用户上次授权的勾选的一致。...redirect_uri={redirect_uri}&response_type=code&scope=user_info%20projects%20pull_requests (3) 码云认证服务器通过回调地址...{redirect_uri}将 用户授权码 传递给 应用服务器 或者直接在 Webview 中跳转到携带 用户授权码的回调地址上,Webview 直接获取code即可({redirect_uri}?...code=abc&state=xyz) (4) 应用服务器 或 Webview 使用 access_token API 向 码云认证服务器发送post请求传入 用户授权码 以及 回调地址( POST请求...其中: 回调地址是用户授权后,码云回调到应用,并且回传授权码的地址。 (3) 创建成功后,会生成 Cliend ID 和 Client Secret。

    1.7K20

    没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

    一、授权流程 在具体做GitHub授权登录之前,咱们再简单回顾一下OAuth2.0授权码模式的授权流程,如果 fire 网站允许 用GitHub 账号登录,流程大致如下图。 ?...用户同意后,GitHub 会根据redirect_uri 重定向回 fire 网站,同时返回一个授权码code。...Application name:我们的应用名; Homepage URL:应用主页链接; Authorization callback URL:这个是github 回调我们项目的地址,用来获取授权码和令牌...在这里插入图片描述 2、获取令牌 授权后紧接着就要回调 fire 网站接口,拿到授权码以后拼装获取令牌 access_token的请求链接,这时会用到客户端密匙client_secret。...name=" + userInfo.getName(); } catch (Exception e) { log.error("授权回调异常={}", e);

    1.8K20

    【Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战

    客户端ID为"client1",密码为"client1secret",授权模式为"authorization_code"和"refresh_token",授权范围为"read"和"write",回调URL...然后,客户端会将用户重定向到redirect_uri指定的回调URL,并在回调URL中接收授权码。.../callback端点用于处理授权码回调,客户端通过回调URL接收到授权码后,可以向授权服务器发起请求,使用授权码获取访问令牌。 类似的,还有简化模式、密码模式、客户端凭证模式和刷新令牌等授权模式。...用户登录并同意授权后,授权服务器将用户重定向回客户端的回调URL,并在URL中附带授权码。.../callback端点用于处理授权码回调,客户端通过回调URL接收到授权码后,可以使用授权码向授权服务器请求访问令牌。

    2.2K11

    没错,用三方 Github 做授权登录就是这么简单!(OAuth2.0实战)

    一、授权流程 在具体做GitHub授权登录之前,咱们再简单回顾一下OAuth2.0授权码模式的授权流程,如果 fire 网站允许 用GitHub 账号登录,流程大致如下图。...用户同意后,GitHub 会根据redirect_uri 重定向回 fire 网站,同时返回一个授权码code。...Application name:我们的应用名; Homepage URL:应用主页链接; Authorization callback URL:这个是github 回调我们项目的地址,用来获取授权码和令牌...[在这里插入图片描述] 2、获取令牌 授权后紧接着就要回调 fire 网站接口,拿到授权码以后拼装获取令牌 access_token的请求链接,这时会用到客户端密匙client_secret。...name=" + userInfo.getName(); } catch (Exception e) { log.error("授权回调异常={}", e);

    1.2K10

    第三方登录:微信扫码登录(OAuth2.0

    1、OAuth2.0   OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。   ...这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。...注意: 1、这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头; 2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面...,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可 state 否 用于保持请求和回调的状态,授权请求后原样带回给第三方。...请注意,在用户修改微信头像后,旧的微信头像URL将会失效,因此开发者应该自己在获取用户信息后,将头像图片保存下来,避免微信头像URL失效后的异常情况。

    57.3K132

    认证授权:OAuth2简介及四种授权模型详解

    开发者非常方便的使用 OAuth2 协议 OAuth 是一个开放标准,该标准允许用户让第三方应用访问该用户在某一网站上存储的私密资源 (如头像、照片、视频等),并且在这个过程中无须将用户名和密码提供给第三方应用...每一个令牌授权一个特定的网站在特定的时间段内允许可访问特定的资源。OAuth 让用户可以授权第三方网站灵活访问它们存储在另外一些资源服务器上的特定信息,而非所有的内容。...例子流程: 1.用户打开第三方网站如 (京东),用户点击了微信授权登录,此时 就会跳转到 微信的授权页面。 2.用户点击授权给京东后,进行授权认证,授权成功会进行回调到京东回调页面。...)拼成url访问授权服务器授权端点 2.授权服务器返回登录界面,要求用户登录(此时用户提交的密码等直接发到授权服务器,进行校验) 3.授权服务器返回授权审批界面,用户授权完成 4.授权服务器返回授权码到回调地址...(redirect_uri)拼成url访问授权服务器授权端点 授权服务器跳转用户登录界面,用户登录 用户授权 授权服务器访问回调地址返回token给客户端 Check Access Token 客户端使用

    4K11

    可能是第二好的 Spring OAuth 2.0 文章,艿艿端午在家写了 3 天~

    回调界面 “友情提示:/oauth/authorize 对应 AuthorizationEndpoint 端点。 ④ 因为我们暂时没有启动资源服务器,所以显示无法访问。...② 在 OAuth2ResourceServerConfig 配置类中,设置 /callback 回调地址无需权限验证,不然回调都跳转不过来哈。...3.2.1 CallbackController 创建 CallbackController 类,提供 /callback 回调地址,在获取到授权码时,请求授权服务器,通过授权码获取访问令牌。...② 在 OAuth2ResourceServerConfig 配置类中,设置 /callback02 回调地址无需权限验证,不然回调都跳转不过来哈。...回调界面 后续,可以通过编写 Javascript 脚本的代码,获取 URI 上的 Hash 部分的访问令牌。 5.

    2.1K30

    OAuth 2.0 授权认证详解

    token) 访问令牌是在用户授权许可下,授权服务器下发给客户端的一个授权凭证,该令牌所要表达的意思是“用户授予该APP在多少时间范围内允许访问哪些与自己相关的服务”,所以访问令牌主要在 时间范围 和...回调地址(redirect uri) OAuth2.0 是一类基于回调的授权协议,在授权码模式中,整个授权需要分为两步进行,第一步下发授权码,第二步根据第一步拿到的授权码请求授权服务器下发访问令牌。...OAuth 在第一步下发授权码时,是将授权码以参数的形式添加到回调地址后面,并以 302 跳转的形式进行下发,这样简化了客户端的操作,不需要再主动去触发一次请求,即可进入下一步流程,但若在客户端请求过程中修改了对应的回调地址...为了避免上述安全隐患,OAuth 协议强制要求客户端在注册时填写自己的回调地址,这个回调地址的目的是为了让回调请求能够到达客户端自己的服务器,从而可以走获取访问令牌的流程。...客户端可以同时配置多个回调地址,并在请求授权时携带一个地址,服务器会验证客户端传递上来的回调地址是否与之前注册的回调地址相同,或者前者是后者集合的一个元素,只有在满足这一条件下才允许下发授权码,同时协议还要求两步请求客户端携带的回调地址必须一致

    1.9K40

    PC 微信扫码登陆

    进一步了解OAuth2.0-----理解OAuth2.0 官方介绍资料 大致的步骤如下: 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据...,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可 state 否 用于保持请求和回调的状态,授权请求后原样带回给第三方。...返回说明 用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数 ---- redirect_uri?...+ para; } 接口测试 1、设置AppId、APPSecret以及回调域名 2、PC访问测试。开源项目中访问地址为: http://域名/[项目名称]/toWebOauth ?...,"666"); redirect(url); } ---- 如果授权回调域名与开发平台中的填写不一致将会出现以下提示 ?

    4.6K40

    SpringBoot学习笔记(十五:OAuth2 )

    服务端返回一个授权许可凭证给客户端。 客户端拿着授权许可凭证去授权服务器申请令牌。 授权服务器验证信息无误后,发放令牌给客户端。 客户端拿着令牌去资源服务器访问资源。...AUTHORIZATION_CODE,表示采用的授权方式是授权码,code参数是上一步拿到的授权码,redirect_uri 参数是令牌颁发后的回调网址。...因此需要指定校验Token的授权服务器接口地址 同时,由于在授权服务器中配置了/oauth/check_token需要客户端登录后才能访问,因此也需要配置客户端编号及Secret;在校验之前先进行登录...应用的名称随便填,主页 URL 填写http://localhost:8080,回调地址填写 http://localhost:8080/oauth/redirect。...; } /** * 回调接口,用户同意授权后,GitHub会将授权码传递给此接口 * @param code GitHub重定向时附加的授权码,只能用一次

    95120

    【PHP】第三方登录OAuth2.0

    步骤一:请求 OAuth 登录页 Request Token URL - 未授权的令牌请求服务地址慕课网请求 QQ 登录页面时使用的带有特定参数的 URL 步骤二:用户使用第三方账号登录并授权 身份认证通过后...URL code 有生命周期且只可使用一次的字符串 AccessToken - 用户通过第三方应用访问 OAuth 接口的令牌[通过慕课网把自己喜欢的课程分享到 QQ 空间] Refresh Token.../头] [每次修改配置后都需要重新验证网站地址] 3.添加测试回调地址 eg. http://test.open.mypro.com/callback.php 4.引入官方 SDK 下载 5.SDK...: header(“Location:$login_url”); qq_callback() QQ 登录完成后的回调处理 7.SDK 优化 SDK 太老,很久无人维护 调整文件及目录结构 SDK 中的常量名太常见...()+86400); setcookie('qq_openid', $openid, time()+86400); 10.API 调用示例 调用get_user_info接口,获取用户信息 (1)回调成功后

    2.3K20

    1 Springboot SpringCloud集成OAuth2入门详细教程

    现在我们来执行OAuth的第一步,客户端要求用户给予授权。也就是用户到我们网站后,点击选择使用百度账号登录后,我们要做如下的事。...scope代表授权范围,可以客户端自己设定不同的值代表不同的范围,譬如abc代表只允许访问用户名头像、def允许访问相册,是个可选项。 百度的文档里讲了授权权限列表 ?...redirect_uri代表回调的地址,也就是说当我们访问上面的请求授权地址时,如果授权通过了,那么就会自动打开redirect_uri这个网址,并且把授权码code添加到该网址的后缀。...然后在安全设置里,把授权回调页,填写进行,保存。注意,这里填的回调页需要和上面的redirect_uri网址的一样才行。 ?...登录成功后界面: ? 可以看到,百度回调打开了我们填写的redirect_url,并且把code覆在后面。

    1.7K21

    Python调用微博API获取微博内容

    和app-secret 二:设置授权回调页 ?    ...然后在“应用信息”下的“高级信息”点击“编辑”按钮,将“授权回调页面”设置为:https://api.weibo.com/oauth2/default.html,将“取消授权回调页”也设置为:https...)用户的最新微博 这里需要注意的是在浏览器弹出一个页面,要先点击“授权”(这里进行的OAuth 2认证,我理解为就是用户访问我的应用后将页面导向新浪服务器然后用户输入信息到新浪服务器后授权给我的应用访问用户数据...,这里我将的微博授权给下面的程序了),授权后浏览器中的URL类似:https://api.weibo.com/oauth2/default.html?...= 'https://api.weibo.com/oauth2/default.html'#回调授权页面 #利用官方微博SDK client = APIClient(app_key=APP_KEY,

    4K41
    领券