2011-03-21 144 views
1

我正在開發一些C程序,通過消息隊列相互通信。POSIX消息隊列安全

因此,例如在兩個程序有這樣一行:

msgget(key, 0666 | IPC_CREAT);

它們共享相同的密鑰和相同的消息結構。

但是想知道:安全性如何?

如果另一個程序在上述兩個同一隊列上寫消息對我來說可能是個問題。 對於在認證和授權的意義上處理安全問題,您有任何建議嗎?

非常感謝, 安德烈

回答

2

隨着0666權限的任何過程可以訪問該消息隊列。您可以通過使用更多限制性權限(例如0600)使其更安全,以便只有當前用戶才能訪問它。

+0

好吧,如果有人可以用用戶權限運行程序可以發送消息到我的程序?有沒有辦法進行身份驗證? – Kerby82 2011-03-21 10:58:29

+0

你當然可以在你的消息中加入類似密碼的東西,並丟棄沒有它的消息。 – ThiefMaster 2011-03-21 11:01:30