【问题标题】:Is it safe to open the Nodejs server port to the world?向世界开放 Nodejs 服务器端口是否安全?
【发布时间】:2021-01-04 07:08:12
【问题描述】:
用于检索和操作数据的 React 应用程序和 Nodejs 服务器运行在同一台服务器上。在本地访问应用程序时,它工作正常,但在外部访问时,应用程序可见但没有数据。这背后的原因是应用程序运行的端口是开放的,而Nodejs服务器运行的端口却没有。
我的问题是,解决此问题的最佳方法是什么?最简单的解决方案是打开另一个端口,但我认为这不是最安全的解决方案。
任何建议将不胜感激。
【问题讨论】:
标签:
node.js
reactjs
deployment
port
【解决方案1】:
对外开放端口,实现基于token的请求验证系统。
您可以实现CSRF 令牌验证。它始终检查请求是否来自受信任的来源。
【解决方案2】:
使用反向代理服务器(如 nginx)来监听打开的 https 端口。反向代理将处理 https 加密,而不是用它来负担你的 nodejs 代码。 nginx是多线程的,可以高效地做https。
反向代理将请求传递到您的 http://localhost:3000 nodejs。根据我的经验,这种安排在大范围内效果很好。
解释如何做到这一点对于堆栈溢出答案来说太过分了。但是你会发现很多在线建议。