禁用使用express节点服务器访问文件



我有一个节点服务器运行在CentOS上,目前,您只需转到根目录中的任何文件即可查看,例如xxx.net/whatever.js。这显然不太好,因为我在某些文件中有一些敏感信息。

如何禁用用户从浏览器导航到这些文件

我设置了一个apache代理来查看网站,就像一样

<VirtualHost *:80>
ServerAdmin me@xxx.net
ServerName www.xxx.net
ServerAlias xxx.net
DocumentRoot /var/www/xxx.net
<Directory /var/www/xxx.net>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/www/xxx.net/error.log
CustomLog /var/www/xxx.net/requests.log combined
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
<Location />
ProxyPass http://127.0.0.1:4000/
ProxyPassReverse http://127.0.0.1:4000/
</Location>
</VirtualHost>

然后pm2运行express节点服务器。我试过各种各样的方法,但都没有改变。如果有人能阐明我的问题,那就太好了。如果你需要更多信息,请告诉我,谢谢!

您可以使用express js限制访问。

当写入时

app.use('/', express.static(__dirname));

这意味着访问任何

您可以仅使用来限制对某些文件夹的访问

app.use('/', express.static(__dirname + '/public'));

或者你可以用express编写中间件,它可以有你想要阻止的文件路由列表

app.use(function (req, res, next) {
if(!checkFunction(req.url)) {
next();
} else {
res.send(404, "Not found");
}
})
var checkFunction(url){
var blockedUrl = ['folder/file1.js'];
return blockedUrl.find(function(urlCheck){
return urlCheck === url;
})
}

最新更新