2011-03-21 152 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