通过环境变量向 next.js 应用程序公开密钥是否安全?

D3P*_*PSI 8 environment-variables webpack next.js

据我所知,前缀为 的环境变量NEXT_PUBLIC_将被生成的包中各自的值替换。

使用变量提供 API 密钥、OAuth 机密等内容是否安全NEXT_PUBLIC_*,或者最终用户理论上可以访问这些机密值吗?如果是这种情况,那么规避这一潜在安全问题的建议方法是什么?

谢谢大家的澄清。

Set*_*eth 10

NEXT_PUBLIC_环境变量前缀只能用于不敏感的值,正如您所指出的,您很乐意将其出现在最终包中。在任何敏感密钥或秘密环境变量前添加前缀NEXT_PUBLIC_都会存在安全风险。这些值只能由 next.js 在构建时或服务器端访问。

考虑使用 Next.js API 路由将任何面向服务的业务逻辑与服务器端隔离。