如何在服务器端清理mqtt消息有效负载?

时间:2016-11-09 12:01:28

标签: mqtt instant-messaging

我使用MQTT协议制作了一个即时消息应用程序。 我想在有效负载中添加一些有关消息的额外数据,如发送时间(服务器时间而不是客户端时间),还提供服务器端有效负载消毒的类型。

在代理的本地计算机上添加消息发送方和消息接收方之间具有超级用户权限的第三方客户端来完成这项工作是一个好主意吗? 还是有更好的主意?

顺便说一句,我使用EMQTT作为消息代理。

1 个答案:

答案 0 :(得分:1)

从具有直接点对点流量(没有过滤和消毒)的纯安全视图听起来像一个危险的想法。 (至少在物联网领域我会反对它。)

为什么呢?因为客户端不受您的控制(即黑客可以重新设计)并注入任何流量以利用其他客户端接收端的安全漏洞。

因此,在服务器端进行消毒听起来是一个非常好的主意。

我建议两个主题:客户端用于发布消息的一个(入站)主题,以及客户端用于订阅消息的另一个(出站)主题。然后,服务器端组件将从入站主题中读取消息,对其进行清理并发布到出站主题。

此de-coupeling使得更改MQTT有效负载变得更容易:如果以不兼容的方式更新有效负载,请引入新的入站主题并保留旧的入站主题。这允许您在过渡阶段支持新旧客户端。