Api 如何更安全地处理OAuth2请求?
我正试图通过使用OAuth2来保护我的API服务。在下面的方案中,对OAuthServer的电话请求和我在我的API服务器和客户机之间使用SSL钉扎,但是我不确定它是否可以通过主中间攻击来暴露;p> 1-)攻击者可以通过MIMA获取OAuth url,例如攻击DDOS 2-)攻击者可以在iOS上访问keychain并获得JWT吗 3-)攻击者可以使用MIMA或反向引擎获得证书吗?所以SSL固定变得不安全 我正试图通过使用OAuth2来保护我的API服务 首先,您的方案不符合OAuth2流程。看 API服务器应该扮演两个角色(理论上,不一定是两个服务器)Api 如何更安全地处理OAuth2请求?,api,security,encryption,oauth-2.0,jwt,Api,Security,Encryption,Oauth 2.0,Jwt,我正试图通过使用OAuth2来保护我的API服务。在下面的方案中,对OAuthServer的电话请求和我在我的API服务器和客户机之间使用SSL钉扎,但是我不确定它是否可以通过主中间攻击来暴露;p> 1-)攻击者可以通过MIMA获取OAuth url,例如攻击DDOS 2-)攻击者可以在iOS上访问keychain并获得JWT吗 3-)攻击者可以使用MIMA或反向引擎获得证书吗?所以SSL固定变得不安全 我正试图通过使用OAuth2来保护我的API服务 首先,您的方案不符合OAuth2流程。看
- 授权服务器:验证客户端并发出访问令牌
- 资源服务器:需要提供有效访问令牌的受保护资源
免责声明:Oauth2主要是为web应用程序设计的。如果您使用本机应用程序,我建议您使用OpenIdConnect,它是OAuth2的扩展,以避免密集使用或web重定向SSL固定可以降低收到MITM攻击的风险。但是您没有使用oauth2和oauth2,因为它与MITM或SSL pining无关,所以请尝试澄清您的问题。我更改了我的问题。你能检查一下吗@Pedrofbb但我将在我的应用程序登录页面中使用此系统,因此不适用于第三方应用程序。我怎么能不直接询问用户名或密码?请您详细解释一下:)我正在考虑获取用户名+密码,并用一个密钥对其进行编码,然后在Oauth2服务器上对其进行解码@pedrofbI认为我不需要使用OAuth2?在我的情况下,JWT看起来就足够了?如果您向第三方提供服务/API,或者希望根据标准集中应用程序的身份验证,oauth2是合适的。看来这不是你的情况,因此,一个更简单的解决方案可能更合适。我可以通过密钥发送加密的用户名+密码,并在服务器上解密,如果是真的,则返回JWT,然后在客户端检查JWT。发送加密或清除密码的安全级别是相同的,因为如果MITM攻击者捕获密码,他可以进行身份验证。但是您说您使用的是SSL固定,因此通道是加密的,并且受到MITM的保护,因此您不需要额外的加密