MQTT订阅#hosts允许用户读取所有消息?

时间:2016-11-29 21:39:20

标签: mqtt mosquitto

我正在阅读有关主题订阅的this。因此,如果我使用通配符订阅#主题,那么我将收到所有消息。

这是否意味着我可以拦截通讯?当有人向secret主题发布消息时,我也会得到它。

显然事实并非如此。但是我错过了什么?

在相关问题上,经纪人如何阻止用户订阅特定主题或向其他主题发布?我假设没有人可以将数据发送给经纪人。它是否与HTTP类似?

1 个答案:

答案 0 :(得分:1)

使用基本的开箱即用配置,任何人都可以连接到代理,订阅#将获得所有已发布的消息,您可以发布到您想要的任何主题。

MQTT协议包括对身份验证的支持,作为建立与代理的连接的一部分。一旦有了经过身份验证的用户,就可以将规则应用于该用户可以执行的操作。不同的经纪人实现了如何以不同的方式创建这些规则,但是mosquitto支持ACL。

使用ACL,您可以定义用户可以订阅和发布的主题。用于此的内置机制是一个平面文件,但也支持一个插件系统,允许您保留用户名/密码和允许数据库中的主题。这样可以轻松更新ACL,而无需重新启动代理。