【发布时间】:2022-10-21 22:23:07
【问题描述】:
我目前正在开发一个 PWA 商店,它有一个 nodeJS SSR(服务器端渲染)并使用 React。
所以我正在使用 dotenv 并在项目中创建了一个 .env 文件,该文件被注入到 nodejs 服务器中。
然后,我将 webpack 配置为也将这些变量注入到前端包中。
我的问题:
- 在服务器端呈现应用程序的上下文中将 .env 文件与 nodeJS 一起使用有多安全?可以以某种方式访问文件吗?
- 在前端注入这些变量有多安全?我目前正在通过修改这样的插件来做到这一点:
new _webpack.default.DefinePlugin({ 'process.env': JSON.stringify(process.env)})
【问题讨论】:
-
一般来说,
injecting those variables本身应该是一种安全的方式,因为这是编译器的工作方式,就像 C/C++ 中的Create-React-App recommaned和macro。但你应该照顾如何注入,可能与您的 Q1 有某种关系。 -
可能没有绝对安全的方法来防止文件被黑客攻击;但我相信现代节点服务器(如 next.js 应该会很好地处理它,你可以阅读更多的源代码;但请记住,你永远不应该在你的
env文件中存储密码或任何敏感令牌,使用另一个方法。 -
2.不安全。
process.env可能包含敏感信息:数据库连接字符串、JWT 机密等。常见的方法是过滤您向客户端公开的变量。例如,您可以像 CRA 一样使用前缀或声明白名单。 -
@YuryTarabanko 我相信你是对的。我错过了
process.env都被字符串化为process.env宏的观点。
标签: node.js reactjs progressive-web-apps server-side-rendering dotenv