2017-05-26 91 views
1

我目前正在進行家庭自動化項目。以下是我的設置。保護我的HTTP連接

ESP8266 WiFi模塊將連接到各種傳感器。在該模塊上將運行一個光源 Web服務器。將部署運行某些NodeJS腳本和MongoDB數據庫的Linode Cloud 。移動應用程序(客戶端)將向雲發送請求至 控制和監視各種傳感器。我將使用JSON Web令牌保護應用程序和雲之間的連接 。我也會嘗試使用HTTPS來保護這個連接。

我很困惑如何保護雲服務器和ESP8266模塊之間的通信。我做了很多研究。必須瞭解某些概念,但無法獲得清晰完整的畫面。有人請指導我。謝謝。

+0

你的三個最佳選擇:https。 HTTPS。 HTTPS。 – dandavis

回答

1

在所有應用程序之間的標頭中使用標記。 當你發送請求,這將是這個樣子:

request.post({ 
    url: 'https://mycoolserver.com/', 
    headers: { 
    Authorization: 'lalalablablabla' 
    } 
}) 

UPDATE:至於你,如果你的令牌匹配他有一個發送請求,在那邊檢查服務器。有很多安全技巧讓你的標記安全,我建議這個標記是非常基本的安全性,但是你可以在飛行中輕鬆完成。稍後,您可以提高安全級別。

+0

很抱歉,如果我的問題聽起來毫無意義......但是這個標頭是否可以被任何入侵者竊聽?還是安全?如果沒有,我如何確保安全? –

+0

這是不安全的,任何人都可以看到令牌,這似乎永遠不會改變... – dandavis

+0

你怎麼看,我們正在談論服務器 - 服務器通信,對嗎? – Lazyexpert

1

假設你已經在這兩個系統中的實時時鐘(客戶端和服務器)

生成功能類似(((unixTime)/1000) + SomeNumbers) * ASmallNumber(unixTime)/1000 is unixTime in secondSomeNumbers is a static number like 897645ASmallNumber is a small number like 7

這個公式將產生數量取決於時間。將此號碼發送給接收方。在接收器(具有相同SomeNumbersASmallNumber值),對該數字進行解碼,並使用接收器unixTime檢查unixTime

例如:如果(unixTime - decodedUnixTime & unixTime - decodedUnixTime> 0),則消息是可信的

+0

Geeky !!!!!!!!!!! –

+0

這很簡單,因此不值得實施。 – dandavis