gpt4 book ai didi

javascript - 从 AngualrJS 应用程序中隐藏 API 访问凭据

转载 作者:行者123 更新时间:2023-12-03 11:23:00 32 4
gpt4 key购买 nike

这是访问 REST API 的 AngularJS 网站的设计问题。由于可以从客户端查看所有 AngularJS 代码(假设混淆不是完全安全的),您如何隐藏 API 访问凭据(API key 和密码甚至 JWT)?

这可以扩展到一个更广泛的问题,即如何将其他应用程序逻辑隐藏在 AngularJS 网站中?

我的研究使我得到了一些见解,其中之一是

http://billpatrianakos.me/blog/2016/02/15/securing-api-keys-in-a-javascript-single-page-app/

但这让我现在更加困惑,因为帖子表明连接到 REST API 的 SPA 不是一个好的架构。我以为是,现在无法弄清楚正确的方法是什么。

最佳答案

我能得出的最接近答案的是这个资源:

https://developers.facebook.com/docs/facebook-login/security#appsecret



Facebook,对他们的安全性非常好,并说:
  • 切勿将您的 App Secret 包含在客户端或可反编译的代码中。
  • 在客户身上使用独特的短期代币。

  • 简而言之,不要在客户端保留 API secret

    为了不简短,在评论中回答讨论:

    And then my question would be "what then is the correct architecture for SPAs and server side code (or database access)?".



    没有一种正确的架构,这取决于项目的规模和范围。它还取决于您选择的前端和后端框架。这些选择还取决于您调用了多少其他 API,或者其他开发人员或您最熟悉的 API。

    不过,更具体地说,关于安全性,理想情况下,您希望为用户设置一个 session ,该 session 由用户用来识别自己的 token 组成。这通常由服务器在每个用户登录时为他们生成。通常这是由您正在使用的框架提供的,但即使不是,构建起来也相当简单。您将希望防止跨源请求(确保用户实际上在您的前端)并具有安全连接(设置 SSL 和 https,尽管这可能会变得复杂)。您通常希望通过 Uglify 之类的方式运行 JS 代码。以防止它太容易被浏览,但这并不能保证人们不能获取该代码并将其取消丑化。

    关于javascript - 从 AngualrJS 应用程序中隐藏 API 访问凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42916486/

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