gpt4 book ai didi

angular - 在 Ionic4/Angular 项目中安全存储 API key 的位置

转载 作者:行者123 更新时间:2023-12-03 23:09:59 25 4
gpt4 key购买 nike

我觉得我在这里问了错误类型的问题,因为它在 30 秒内无法通过谷歌搜索。请告诉我。

无论如何,我有我的 environment.tsenvironment.prod.ts所有设置都使用后端和第三方服务的 url 和 api key 。但我已经读到将 API key 保存在那里是不安全的做法。我应该把它们放在哪里?如果确实在其他地方,那么最简单的方法是什么?

最佳答案

如果我正确理解您的问题,您将在此处查看两个潜在的关键误用点:

  • 开发人员在开发您的应用程序时可能会意外使用生产 key - 这很容易通过将您的 key 存储在 CI 管道中(假设您有一个)并将正确的 key 注入(inject)正确的环境配置中来解决。一些可能感兴趣的工具:Octopus , Hashicorp Vault .然后,开发人员将仅在其代码库中拥有开发 key 。请记住——如果你使用的是版本控制系统——仅仅删除你的生产代码并添加一个新的提交是不够的——还有 tools可让您搜索提交历史以查找意外暴露的 secret ,因此您必须更改 key
  • 用户可以对您的应用程序进行逆向工程并从代码中提取 key 。这个更难解决,因为它在很大程度上取决于操作系统、版本以及您如何处理 secret 。一般你想避免存储 secret 在您的应用程序中,而不是在验证用户时获取它们。之后 - 您将利用您的目标操作系统 secure local store功能(请记住,即使是 does not guarantee 100% protection )。对于第 3 方访问,考虑通过您的服务器代理请求以隐藏 key 可以找到更多灵感 here

  • 更新 为了澄清您对用户交互的担忧,请考虑以下简化的工作流程:

    1) 用户发出 未经身份验证 请求 您的 后台 /authorise将检查用户名、密码并返回 的端点 token 1 (最好是 JWT )

    2)您的应用程序存储此 token 1 在设备的本地存储中 - 这是用户可以访问的唯一 secret ,并且特定于该用户

    3) 您的用户使用 发出经过身份验证的请求 token 1 给您的 /3rd-party-api-proxy
    4) 您的服务器将验证 token 1 从第 3 步开始,使用 向第 3 方发出实际请求 token 2 你从未暴露过。

    5)您的第 3 方请求成功,您将数据返回给用户。

    有了这个流程你的 token 2 永远不会暴露,您始终知道哪个用户请求访问 3rd 方 API(您可以添加日志记录、审核等)。互联网上有很多关于如何架构这个东西的文章,我在这里只是概述了非常基本的概念,希望这能给你一些思考。

    关于angular - 在 Ionic4/Angular 项目中安全存储 API key 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59292896/

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