2015-08-14 33 views
0

我已經使用npm http-server幾次在局域網上廣播我的mac文件系統,這樣我就可以通過不同的操作系統設備及其瀏覽器訪問它我的家,而不是在系統偏好中啓用文件共享。我使用的基本代碼,並通過本地主機連接成功,和我的IP地址+端口上的其他設備:密碼保護LAN npm家庭內的http服務器連接(mac終端)

http-server [path to broadcast/serve] -p [random port] -o 

我知道這是不是一個好主意,因爲任何人誰可以連接並猜測該端口可以訪問我的系統,所以我想知道是否有一種方法來密碼保護此連接。當連接到[myip]:[port]時,用戶是否可以得到身份驗證提示?我嘗試着用http-server的-S-K-C選項來搞混,但是不知道如何正確創建這些.pem文件,或者將它們連接到服務器命令。

我也嘗試HTTP的身份驗證,並能夠創建提示用下面的代碼:

var http = require("http"); 
 
var auth = require("http-auth"); 
 
    
 
var basic = auth.basic({ 
 
    file: __dirname + '/htpasswd' 
 
}); 
 
    
 
http.createServer(basic, function(req, res) { 
 
res.end('User successfully authenticated: ' + req.user); 
 
}).listen(8080);
它的工作原理,但響應保持靜態與「用戶成功驗證:[用戶]」 ,並且不會繼續訪問我的服務器(我的文件系統)。

我知道我是新手,但一直在嘗試密碼保護這種類型的本地網絡連接大約一週。有任何想法嗎?

回答

0

一,基本。確實,使用默認命令,如果用戶猜測端口,每個人都可以瀏覽文件系統,但如果您位於防火牆和/或NAT之後,則只有本地網絡中的用戶才能連接到您的計算機。如果你是唯一連接到局域網的人,那麼它是「安全的」(假設你的Wi-Fi網絡可以被信任)。其次,如果您在局域網內部使用該服務器,則很可能不需要SSL(其中-S,-K-C選項)。 SSL只是將加密技術添加到連接中,但不提供認證。
SSL對於公共互聯網來說非常重要,因爲網絡不能完全信任(有人可能正在傾聽 - 「嗅探」 - 您的流量)。但是,在局域網內,您可以通過電纜或Wi-Fi連接啓用加密功能,如果您使用的是WPA2(如果您不使用WPA2,請立即啓用它,而不僅僅是因爲此服務器! )。您的連接在安全的網絡上已經被防止竊聽,所以你應該沒問題。第三,你發佈的代碼確實需要認證(使用HTTP Basic Auth,這對你的用例來說很好),但它不包含任何列出文件系統並允許探索它的代碼。

據我所知,沒有與http-server類似的預製實用程序,它支持開箱即用身份驗證。你可以繞過它,但使用OSX的內置文件共享工具(它們也更安全並支持不同類型的認證)可能會更容易。您可以隨時在其他設備上使用簡單的應用程序 - 並且還可以讀/寫方式訪問文件系統!

+0

雅,我明白這一切。我只是想看看我是否可以添加它,這樣即使他們知道端口和IP,室友也無法訪問它。通過使用GUI應用程序來完成它,我明白了你的要求......我應該說我已經這麼做了,但是在尋找更多內聯的東西,而不需要安裝/同步任何設備上的第三方。不過感謝您的幫助! – YMGenesis