GithubApp:在 Web 客户端上存储安装令牌是个好主意吗?
GithubApp: is it good idea to store installation token on web client?
我正在通过集成构建 github 应用 api https://developer.github.com/v3/apps/。
经过身份验证的用户需要能够从 github 存储库中选择文件。目前我正在通过我的后端服务器将所有请求(例如列出安装、存储库和 git 数据树)代理到 github。
我正在考虑给我的 Web 客户端一个 github's installation token 并将其保存在 sessionStorage
中。这将允许直接从 Web 浏览器临时执行对 github 的任何安装相关请求。因此,我可以通过直接从网络客户端调用 github api 来列出 repositories/files,而无需通过我的后端 api.
进行代理
这种方法会不会有任何安全问题?
据我所知,这样做应该是安全的,因为客户端机密和私钥保存在后端。用户只会获得一个令牌,临时授予 API 访问他自己的安装的权限。我无法想象用户会做出任何恶意行为。此外,由于令牌是临时的,因此第 3 方从 sessionStorage
.
窃取它的风险相当低
我已经为多个应用程序使用了 GitHub 安装访问令牌。只要 pem 文件和应用程序 ID 位于安全位置,我就看不到任何安全问题。生成令牌是一个多步骤过程(我记得有 3 个步骤),因此如果您未被适当授权访问您的存储库,则存在一定的错误范围。
我正在通过集成构建 github 应用 api https://developer.github.com/v3/apps/。
经过身份验证的用户需要能够从 github 存储库中选择文件。目前我正在通过我的后端服务器将所有请求(例如列出安装、存储库和 git 数据树)代理到 github。
我正在考虑给我的 Web 客户端一个 github's installation token 并将其保存在 sessionStorage
中。这将允许直接从 Web 浏览器临时执行对 github 的任何安装相关请求。因此,我可以通过直接从网络客户端调用 github api 来列出 repositories/files,而无需通过我的后端 api.
这种方法会不会有任何安全问题?
据我所知,这样做应该是安全的,因为客户端机密和私钥保存在后端。用户只会获得一个令牌,临时授予 API 访问他自己的安装的权限。我无法想象用户会做出任何恶意行为。此外,由于令牌是临时的,因此第 3 方从 sessionStorage
.
我已经为多个应用程序使用了 GitHub 安装访问令牌。只要 pem 文件和应用程序 ID 位于安全位置,我就看不到任何安全问题。生成令牌是一个多步骤过程(我记得有 3 个步骤),因此如果您未被适当授权访问您的存储库,则存在一定的错误范围。