2017-02-12 95 views
2

我有一個運行在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,但沒有任何改變。如果有人能夠解釋我的問題,那將是非常好的。如果您需要更多信息,請告訴我,謝謝!

回答

2

您可以使用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; 
     }) 
    } 
+0

文件路由列表我肯定已經使用前公用文件夾版本......這一次我打算只產生作爲html網站,但最後一分鐘決定離開它動態...所以我沒有使用酒吧。但我一定會嘗試'checkFunction'技術!非常感謝這些例子。 –