我是JAM堆栈的新手。 JAM堆栈中的Web应用程序(我将我的应用程序托管在Netlify中)将完全依赖于API来存储信息和身份验证,对吗?

因此,我担心的是,我将必须在我的JavaScript代码中公开公开我的所有API key 。任何知道如何打开网站源代码的人都可以看到我的API secret ,并且很容易被滥用。

我正在阅读Github上JAM堆栈repo here中的一个未解决问题

如何保护我的API key 不被窃听和滥用?

在这种情况下,“最佳做法”是什么?

提前致谢

最佳答案

免责声明:我为Netlify工作

这是一个常见的问题,Netlify确实开发了一些功能来处理此问题,而无需运行任何其他服务。两者都显示在本文中,但我将在这里进行总结:https://www.netlify.com/docs/redirects/#structured-configuration

您可以使用headers指令使用特殊的HTTP header 将

  • 代理到其他服务,以使用netlify.toml重定向(仅-不能使用_redirects!)
  • 如果您的远程服务可以验证签名并拒绝未签名的请求,则
  • Netlify将使用JWS签名您的请求,因此没有其他人可以成功使用您的 key 。您可以使用signed指令进行重定向(仅再次在netlify.toml中使用,而不能在_redirects中使用)。

  • 这两种方法均要求您对API进行一些控制(或者在接受API请求之前使其具有要求其中一种配置的支持)。

    如果您无法控制API,则可以考虑使用function将它们添加到API请求中,从而有效地为您代理。请注意,这有点复杂,并且有一个严格的限制,即您的代码+代理+响应必须在10秒内发生,这与您默认在Netlify上进行函数调用的时间一样长。

    关于javascript - 保护JAM Stack中的API key ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53333018/

    10-12 13:01
    查看更多