首页 文章

使用PhoneGap的OAuth隐式流安全性

提问于
浏览
3

我已经对这个主题进行了很多研究,并且理解我想要使用我的MVC应用程序的授权代码流(因为客户端密钥将保持安全),但是,我的理解是我必须使用隐式为PhoneGap应用程序授予流程,它是一个纯粹的客户端应用程序,假设它不能保密 .

话虽如此,我仍然在为我对隐含资助流程的安全含义的理解而斗争 . 在浏览器中执行时,我理解它有点安全(通过验证重定向uri,短期令牌等) . 但是,因为PhoneGap将在其自己的浏览器实例中执行(因此通过我需要解析的哈希片段返回令牌),这如何将API锁定到我的PhoneGap客户端?

什么's to stop a malicious hacker from simply stealing the client_id (embedded in the HTML/JS) and build their own PhoneGap application (or any other) and simply go through the implicit authorization/authentication process, thus spoofing the 2412763 or 2412764 PhoneGap app? This problem does not seem specific to my API - does this mean this problem exists for all API'那里实现隐含流程(包括大型玩家,如Facebook,Twitter等)?如何防止这种情况发生,这是否意味着我必须拒绝/不实施隐式流程?如果是这样,我如何从PhoneGap应用程序安全地使用API?

谢谢!

1 回答

  • 2

    Oauth2隐含流量一般不安全 . 就像你提到的那样,任何人都可以看到你的 client_id 并且可以创建一个欺骗用户的登录URL,并且可以窃取 access_token . 任何使用Oauth2隐式流的服务都可以实现这一点,包括大玩家 .

    垃圾邮件应用程序实际上正在使用Instagram进行此操作,他们使用其他人的 client_id 来允许登录,收集 access_token 并在Instagram上使用垃圾邮件/ / comment .

    Oauth2授权代码授权流程在Phonegap应用程序中实现possible,但不建议这样做,因为您必须在HTML / JS中存储 client_secret . 与隐式授权流程相同,可以在Phonegap中使用,但是人们可以获得您的 client_id 和欺骗用户 .

    你可以在Phonegap应用程序中使其更加安全的一种方法是使用Oauth2授权代码授权流程,在您从重定向获得 code 后,使用哈希验证您的服务器,并且您的服务器可以执行实际的Oauth2 POST 使用 client_secret 到服务API获取 access_token . 所以在这种情况下 client_secret 不在应用程序HTML / JS中,而是在您的服务器上 . (这也可能被黑客欺骗,但你有更多的控制权)

相关问题