如何阻止Node.js / Express提供我的应用程序的源代码?

时间:2012-12-12 22:19:17

标签: security node.js express

我从没想过这会是Node.js和Express的问题,但是我疯狂地想到要在浏览器中键入我的Node.js Express项目中其中一个源文件的位置 - 类似于: / p>

http://www.mywebsite.com/mynodejsapp/app.js

对于我的 极度恐怖 ,我的应用程序源代码会弹出,公开供所有人查看。

那么,除此之外:我如何在Node.js / Express中停止它?

我的设置代码非常简单:

var app = express();
app.configure(function() {
    app.use(express.static('/home/prod/server/app/public'));
});
app.listen(8888);

为了澄清,这就是我的文件夹结构:

/home/prod/server/
/home/prod/server/app.js
/home/prod/server/public/

用于公共访问的所有的各种文件都位于/public下。我的所有服务器源代码都在/server/下,我对Express的静态文件夹配置的理解是,静态文件夹是Express愉快地从文件系统提供文件的唯一地方。

有什么想法吗?

1 个答案:

答案 0 :(得分:10)

根据您发布的内容,您输入的网址实际上就像您输入的网址一样。 Apache / nginx / ...并且您确实将节点应用程序放在文档根目录中。在这个(以及任何类似的)案例中答案很简单:

从不将任何源代码文件放在文档根目录或其他HTTP可访问文件夹中。在您的情况下,/home/prod/server/app/public应该只包含客户端内容(HTML,CSS,图形,(缩小)客户端JS),并且nginx不应该在此文件夹上有任何内容作为其文档根目录。