在过去几年中,OAuth和SAML等单点登录协议越来越多地被用于使第三方能够从某种服务中访问某些用户的资源,而无需用户向第三方提供凭据。
其中一个例子是付款网关:
当使用web时,我很清楚,通过查看地址栏中的名称并确保证书是安全的(如果我信任支付网关),我可以确定我在合法的网关页面上。
有一些商家的移动应用程序使用SSO,通过在应用程序中嵌入浏览器,将用户重定向到支付网关。但是,在这些应用程序中,您看不到地址栏或网关证书。那么,您如何确定您正在输入您的详细信息在支付网关页面,而不是商人的应用?
我看到的一个这样的应用就是一个本地食品订购应用程序。
编辑:正如“安东尼·罗素”所指出的,你可以使用一些工具来嗅闻流量,看看到底发生了什么。如果应用程序使用HTTPS,则可以使用Burp/Zap/mitmproxy。如果它使用的是SSL,而不是HTTPS,那么您可以尝试逆转这个应用程序,但这需要更多的时间。
发布于 2017-07-18 15:40:03
除非显示了本机浏览器,否则您无法知道。这就是为什么谷歌在对他们的OAuth2系统:https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html进行身份验证时,不允许任何"web视图“方法。
在这些情况下,RFC还推荐使用本机浏览器:https://datatracker.ietf.org/doc/html/draft-ietf-oauth-native-apps-12。
来自本地应用程序的OAuth 2.0授权请求只能通过外部用户代理,主要是用户的浏览器进行。本规范详细说明了这种情况的安全性和可用性原因,以及本机应用程序和授权服务器如何实现这种最佳实践。
https://security.stackexchange.com/questions/165472
复制相似问题