2017-09-26 47 views
0

我們在nodejs,expressjs中開發項目,但不使用express-generator來創建腳手架。我們手動創建每個文件夾或文件。因此,我們現在面臨的問題是我們能夠訪問服務器端代碼例如package.json,app.js來自外部,比如當我給出「http://localhost:3000/package.json」時。這個文件在瀏覽器中顯示,如果我們使用express生成器,這是不可能的。建議某種方式使得只有公用文件夾可以從外部訪問而不是其他文件夾就像快遞發電機一樣。從外部限制服務器端文件

+0

也許這篇文章可能會得心應手 - https://medium.com/hack-your-career/a-few-words-about-security-in-node-js-unauthorized-access-to-filesystem-b9d4f17487d8 – Sindis

回答

0

聽起來像你正在使用express.static()與不正確的根路徑,即您的項目目錄,而不是隻包含公共文件(JS,CSS,HTML等)的子目錄。

如果您的公共文件夾名爲public,用它作爲根:

app.use(express.static(path.join(__dirname, 'public'))); 

如果您的客戶端文件的設置,以便它們需要/public前綴,您可以使用此:

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