在JAM堆栈中保护API密钥



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

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

我在Github 上阅读了JAM堆栈回购中的一个公开问题

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

在这种情况下,什么是"最佳实践"?

提前感谢

免责声明:我为Netlify 工作

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

  1. 您可以使用headers指令代理到具有特殊HTTP标头的其他服务,以在netlify.toml中重定向(仅限于_redirects!(

  2. 如果您的远程服务能够验证签名并拒绝未签名的请求,Netlify将使用JWS对您的请求进行签名,这样其他人就无法成功使用您的密钥。您可以使用signed指令进行重定向(再次仅在netlify.toml中,而不是在_redirects中(。

这两种配置都要求您对API有一定的控制权(或者在接受API请求之前,让它支持需要其中一种配置(。

如果你不能控制API,你可以考虑使用一个函数将它们添加到API请求中,实际上是为你代理。请注意,这有点复杂,并且有一个严格的限制,即您的代码+代理+响应必须在10秒内发生,这与Netlify上默认的函数调用一样长。

相关内容

  • 没有找到相关文章

最新更新