Google登录按钮 - 是什么阻止某人欺骗其他应用并窃取令牌?

问题描述 投票:0回答:1

使用此页面:https://developers.google.com/identity/sign-in/web/sign-in

向页面添加按钮非常容易,只允许客户端登录Google。

单击该按钮,将向用户显示如下屏幕:

google auth popup

这个按钮有2个ux_mode:“popup”和“redirect”:https://developers.google.com/identity/sign-in/web/reference

我的问题是关于ux_mode = popup,其中原始页面没有改变,所有登录流程都在一个单独的弹出窗口中处理。

想象一下,一个好的应用程序发布。似乎攻击者可以克隆应用程序,将其呈现给用户。用户认为它是好的应用程序将登录并且攻击者将有办法从用户获取有效的令牌以获得良好的应用程序。

现在我明白,在该模式(弹出窗口)中,IDP(Google)将拒绝任何不是来自Origin的内容,而该内容不属于项目配置中设置的显式重定向URI列表。

但这是唯一阻止这种情况的事情吗?我一次又一次地读到,不应该依赖CORS来保证安全性。我也不确定,但似乎可以通过一点点制作来规避它。

我缺少此登录流程的安全性的另一个方面吗?

oauth oauth-2.0 google-oauth google-oauth2 google-login
1个回答
0
投票

我不知道谷歌的实施,但从OAuth 2的角度来看:

1 /“用户认为这是一个很好的应用程序”用户应该检查地址栏和浏览器中的绿色锁。它被视为用户的责任。

2 /您注册了重定向uris,当客户端尝试获取访问令牌时会对其进行检查。因此谷歌将拒绝使用令牌生成并将用户浏览器重定向到恶意应用程序。

3 /浏览器将拒绝弹出窗口和其他网页之间的任何通信,因为它们不是同一个来源。这称为同源策略,被视为浏览器的重要安全功能。

一般来说:应用程序位置/ uri / origin / domain(根据需要)是识别您的应用程序和安全性的基础。

希望它有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.