我有一个在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运行一个快速节点服务器。我尝试了各种各样的chmod'ing但没有改变。如果有人能够解决我的问题,那就太好了。如果您需要更多信息,请告诉我,谢谢!
答案 0 :(得分:2)
您可以使用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;
})
}