当我的.env
文件还存储仅由服务器使用的PRIVATE(即秘密)密钥时,可以安全地使用“ dotenv”库访问客户端/前端代码的PUBLIC密钥吗?
我是否需要担心在访问前端的PUBLIC密钥时公开服务器端代码使用的PRIVATE密钥?
例如:
/* SOME FRONT-END (CLIENT-SIDE) COMPONENT */
require('dotenv').config() // really hope I'm not exposing my private keys here ?
const myPublicKeyThatIsOkayForThePublicToSee = process.env.SOME_PUBLIC_KEY
// end of file... never access any PRIVATE keys,but hopefully they weren't exposed above
我希望能够放松一下,因为我可以将所有密钥存储在一个文件中,因为这将使我的开发过程更加容易(项目更易于维护,等等)。似乎很烦恼,必须将密钥存储在两个单独的位置;宁愿只使用一个大型的配置文本文档(如.env文件),所有密钥都位于该文档中,并且我可以使用“ PRIVATE_”标签和“ PUBLIC_”命名PUBLIC变量来命名PRIVATE密钥。
所需的.env
文件示例:
PUBLIC_SOME_3RD_PARTY_API_AUTH_accESS_TOKEN=d678h678hs6s78g6h7s8gf9g6f9
PRIVATE_SOME_3RD_PARTY_APP_KEY=c41v987gtuig78ghjk43j6h50952gds
PRIVATE_SOME_3RD_PARTY_APP_PASSWORD=93kjc7830hg874njbx89724oidbf78
我很抱歉以前是否已回答此问题,但我认为值得一问,因为如果我在应用程序中错误地实现了密钥存储/访问,则可能存在潜在的安全问题。
如果这样做不安全,那么实现前端密钥存储的更好方法是什么?我应该只定义一个单独的public.client.keys.js
文件还是类似的东西,并在必要时在前端模块中导入密钥?
在此先感谢您的帮助。