NodeJs 和 Express:我的源代码是否存在被看到的风险?

NodeJs 和 Express:我的源代码是否存在被看到的风险?

我是 nodejs 和快速部署的新手......

我想将文件上传到我的 Windows 服务器,但我担心我的源代码可能会被人通过类似这样的 URL 检索到http://myip:8080/app.js

部署 nodeJS 应用程序时,我应该将文件放在哪里?附加问题:有人知道我应该将数据库的用户名和密码放在哪里而不是放在源代码中吗?

答案1

您需要确保 Express 服务器中没有可用于提供源文件的路由。这通常很容易实现,只需确保您要提供的文件与源文件位于不同的位置,并且您用于提供其他文件的方法永远不能用于访问源文件即可。

个人路线如:

app.get("/", function(req, res) {
    res.sendFile("/assets/index.html");
});

只会提供那一个文件。

在使用某种自动路由(例如 with )时需要小心express.static()。在这种情况下,您必须确保仅公开包含公共资产(HTML 文件、CSS 文件、客户端 JS 文件等)的子目录,并且不会意外允许提供任何服务器端源文件。

这通常可以通过简单地将公共资产分离到文件层次结构的不同部分来轻松完成:

app.use(express.static("public"));

这将仅提供应用程序目录中子目录中的文件public。因此,您可以拥有如下结构:

/user
    /me
       /myApp         (server-side source files are in here)
           /public    (public client-side files are in here)

哦,不用说,您的服务器需要总体上是安全的,这样它就不会以其他方式(不是通过您的 Express 应用程序)受到攻击,从而允许攻击者访问文件系统。除其他事项外,通常会配置防火墙,仅允许端口 80 或 443 上的 http 请求从外部世界通过到您的服务器。

相关内容