【问题标题】:MQTT subscribe to # topic allows the user to read all messages?#MQTT订阅主题允许用户阅读所有消息?
【发布时间】:2017-04-14 01:26:46
【问题描述】:

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

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

显然情况并非如此。但我错过了什么?

在一个相关问题上,代理如何阻止用户订阅特定主题或发布到其他主题?我认为不是任何人都可以将数据发送给经纪人。它在某种程度上类似于 HTTP 吗?

【问题讨论】:

标签: mqtt mosquitto


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多