2014-05-19 72 views
2

我正在嘗試使用zeroMQ進行2個進程之間的通信。該消息包含來自一個進程的指令,以便第二個執行,因此從安全角度來看,僅發送和接收正確的消息是非常重要的。向localhost發送zeroMQ消息 - 安全嗎?

如果我擔心第三方可能試圖攔截或發送惡意消息到流程,我是否正確地認爲只要我的消息在IP 127.0.0.1上發送/接收,我總是安全的?或者有什麼情況可能會危及這種情況?

感謝您的幫助!

回答

2

假設和安全通常是兩件你不想混合的東西。您的問題的簡短答案是,在默認情況下,向本地主機(127.0.0.1)發送或接收流量不會在本地主機之外發送或接收流量。

當然,如果機器本身受到損害,那麼您將不再安全。

2

您已經應用了ipc標籤,我假設你正在使用的ipc://協議的手段(如果沒有,你應該是如果所有的通信是在一臺機器發生)。在這種情況下,您根本不應使用IPv4地址(或localhost),而應該使用ipc端點名稱。見herehere

對於ipc,您沒有連接或綁定到IP或DNS地址,但更類似於本地文件名。您只需確保兩個進程都引用相同的文件名,並設置權限以便兩個進程都可以正確訪問該目錄(有關更多信息,請參閱ZMQ文檔,搜索ipc)。 ipc端點名稱和文件名之間的唯一區別是您不需要創建該文件,ZMQ創建資源,以便兩個進程都可以與同一事物進行通信。

正如S.Richmond所說,如果您的機器遭到破壞,那麼所有投注都關閉,但如果您正確使用它們,則無法將ipc端點發布到互聯網。