从Node.js应用程序阻止直接URL访问

时间:2016-03-26 00:40:09

标签: linux node.js .htaccess security

我将Node.js应用程序部署到linux服务器,效果很好。

但是,我可以直接访问浏览器中的特定文件来输入网址。

http://my-node-app.com/package.json

我可以看到所有的东西,即使

http://my-node-app.com/config/config.json

它显示我的配置包括密码。除了服务器本身之外,它不会显示,我如何限制访问?

我在var / www /中添加了.htaccess文件,并添加了此代码,

<Directory "my-node-app">
  Deny from all
</Directory> 

但它不起作用,我尝试/ etc / apache2 / site-enabled / 000-default,添加如上代码,但它不起作用。我用谷歌搜索并添加代码,但它不起作用,我不知道它与apache2有关。 Node.js需要Apache2吗?无论如何,我怎样才能阻止这个直接访问网址包括wget?

2 个答案:

答案 0 :(得分:0)

自我答案

我这样编码:

app.use(express.static(path.join(__dirname)));

所以dirname中的所有文件都会显示出来,有人和我一样有问题,它与你的静态文件路由有关。选中它,然后指定静态文件文件夹,而不仅仅是__dirname,而是__dirname/somefolder

答案 1 :(得分:0)

您可以通过以下方式对其进行限制

app.all(['*index.js*', '*_helpers/**', '*models/**', '*package.json*', '*bower.json*', '*README.md*', '*Public/**'], function (req, res, next){
    res.send({ auth: false });
});