禁止使用快递节点服务器访问文件
问题描述:
我有一个运行在CentOS上的节点服务器,目前您只需转到根目录中的任何文件并查看它即可,例如xxx.net/whatever.js
。这显然不是很好,因为我在某些文件中有一些敏感信息。禁止使用快递节点服务器访问文件
如何禁用用户从浏览器浏览到这些文件?
我已经设置了查看网站,像这样
<VirtualHost *:80>
ServerAdmin [email protected]
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运行的快速结点服务器Apache代理。我尝试了各种各样的chmod'ing,但没有任何改变。如果有人能够解释我的问题,那将是非常好的。如果您需要更多信息,请告诉我,谢谢!
答
您可以使用express js限制访问。当这样写
app.use('/', express.static(__dirname));
这意味着任何访问
可以限制这种访问某些文件夹,只能用
app.use
( '/',express.static(__目录名+'/ public'));
或者你可以写在快递中间件可以有你想要阻止
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;
})
}
文件路由列表我肯定已经使用前公用文件夹版本......这一次我打算只产生作为html网站,但最后一分钟决定离开它动态...所以我没有使用酒吧。但我一定会尝试'checkFunction'技术!非常感谢这些例子。 –