gpt4 book ai didi

security - 具有桌面应用程序安全性的 OAuth2

转载 作者:行者123 更新时间:2023-12-03 22:25:33 24 4
gpt4 key购买 nike

我有一个 Electron 应用程序,它基本上是一个 Google Drive 客户端。我打算使用 OAuth 2。

但是,Google API 要求我在生成 client_secret 的地方注册我的应用程序。由于这是一个桌面应用程序,我将 client_secret 存储在服务器中。身份验证 URL 在服务器中生成并发送给用户。

我担心人们可以假装是应用程序并代表我的 client_secret 做事。如果有恶意的人创建了未经授权的应用程序并向我的服务器发送请求,理论上他们可以代表我的应用程序做恶意的事情。

我能做些什么来缓解这个问题,或者这不是问题吗?

编辑:人们只会访问他们自己的文件。就像他们在 drive.google.com 上一样(读/写/删除文件)

最佳答案

编辑: 验证请求来自您的桌面应用程序而不是克隆到您的服务器实际上是不可能的除非您控制它的安装位置,但对于用户程序,您却没有。你可以设置一些微薄的障碍,但你不能提供任何保证。看起来 iOS/Android 正在这方面发展,我想唯一可行的实现是操作系统代表您发送经过验证的凭据,即操作系统级别的支持,而不是应用程序级别的支持。

至于一般的 OAuth 2.0 身份验证方法......

如果我们在这里走动,我们可以分析每种授权方式,看看这样做的风险。 https://developers.google.com/identity/protocols/OAuth2

  • https://developers.google.com/identity/protocols/OAuth2WebServer (我想你在这个营地,但这里没有 client_secret)
  • DOS 对您的客户端凭据的唯一风险。 响应只会被确认并转发到指定的重定向 Uri,因此可以代表您请求 token ,但只有您的服务器会收到 token (假设用户代理是体面的),您应该处理以下情况您收到未知的 token 响应。
  • https://developers.google.com/identity/protocols/OAuth2InstalledApp
  • 用户安装恶意应用程序的风险。 当您丢失 client_id , client_secretredirectUri (您无法将这些保密以防止设备调试),那么任何人都可以代表您制作应用程序。对于移动应用程序来说,这是一个不幸的问题。目前唯一的防御是用户同意屏幕,也就是说,希望用户通过查看同意屏幕注意到他们被骗从商店安装恶意应用程序而不是您的合法应用程序。

    我希望在这方面看到更多工作,也许 App Store 可以代表您持有一些凭据,然后确认这是您的应用程序请求,我想这将涉及一些哈希检查等。

    我会更乐意在这个问题上得到纠正,但我认为没有什么能阻止上述问题:P
  • https://developers.google.com/identity/protocols/OAuth2UserAgent
  • 同1。
  • https://developers.google.com/identity/protocols/OAuth2ForDevices
  • 同2。
  • 关于security - 具有桌面应用程序安全性的 OAuth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51399187/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com