gpt4 book ai didi

github - 如何安全地将 Github App Install ID 与与 GitHub App 集成的网站帐户关联?

转载 作者:行者123 更新时间:2023-12-04 03:45:58 27 4
gpt4 key购买 nike

我正在构建一个围绕我的 GitHub 应用程序集成的网站。
这个网站有自己的用户(来自 Google oAuth),他们可以通过安装我的 GitHub 应用程序将他们的帐户连接到他们的 GitHub 帐户。
在 GitHub 应用程序安装过程中有一些事情我无法理解:
用户在 GitHub 上安装我的应用程序后:

  • 他们的浏览器被重定向到一个 URL(“安装后设置 URL”),该 URL 中包含安装 ID。
  • GitHub 调用我的 webhook 来声明安装

  • 安装 ID 是一个敏感信息,就好像我网站的恶意用户(攻击者)可以欺骗我的网站将他们的帐户与其他人(受害者)的 GitHub 安装 ID 相关联,我的网站将在 GitHub API 上运行受害者代表攻击者(这很糟糕!)。
    现在,我的目标是将此安装 ID 安全地绑定(bind)到我网站的用户。 所谓安全,我的意思是我的网站不可能授予攻击者对我的应用程序的受害者 GitHub 安装的权限。
    使用“安装后设置 URL”中提供的 GitHub 安装 ID 将此安装绑定(bind)到我的网站帐户是不安全的,因为我无法验证此安装 ID“属于”我网站的用户,因为知道受害者的有效安装 ID 的攻击者可以伪造 URL。
    不完善的缓解措施:
  • 断言安装 ID 未绑定(bind)到我网站的任何其他用户帐户
  • 不好,因为如果出于某种原因,合法用户从未使用“安装后设置 URL”将这个 GitHub 安装 ID 绑定(bind)到他的帐户而被重定向到我的网站,那么它可能会被规避
  • 在任何情况下都不好,这很容易受到确认的“竞赛”(或时间?)攻击(如果攻击者设法在受害者之前确认有效的安装 ID)

  • 与在 webhook 上收到的 GitHub API 事件事件结合使用
  • webhook 是由 Github 后端触发的,因此无法识别登录的网站用户,这无助于我们将 github 安装 ID 绑定(bind)到正确的网站用户。


  • 我是否遗漏了什么,或者这是 App 授权模型的缺陷?

    最佳答案

    找到了答案:
    我需要在安装过程中激活“请求用户授权 (OAuth)”。通过这种方式,GitHub 会使用一个安全 token 进行回答,我可以使用它来验证安装,而不仅仅是安装 ID。
    文档:https://docs.github.com/en/free-pro-team@latest/developers/apps/identifying-and-authorizing-users-for-github-apps#web-application-flow

    关于github - 如何安全地将 Github App Install ID 与与 GitHub App 集成的网站帐户关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65145343/

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