如何通过websockets保护MQTT

 教坏的黑天使_203 发布于 2023-01-07 09:01

我想了解在通过websockets将MQTT代理映射到浏览器时保护Mosquitto的最佳方法.我正在使用Lighttpd作为websocket层,根据这篇博客文章.

我的用例是单向的.我只需要向浏览器发送消息.因此,我可以使用ACL来防止恶意分子发布消息.

但是,我怎样才能阻止歹徒订阅,或者更好的是,首先建立连接?

我知道我可以使用ID/pw进行MQTT连接.所以,我猜我的应用服务器可以在用户自己验证后将凭据发送到浏览器,然后Javascript客户端可以使用这些凭据来建立MQTT/WS连接.但是,如果我有数千个客户端,我该如何管理ID和密码?或者我应该只有一些ID并定期回收它们?我是否应该根据mosquitto-auth-plug将此位移至Redis或类似位置?

通过保护webserver层中的连接,我想知道是否有更好的方法.Lighttpd 的mod_secdownload插件似乎提供了一个模型,可以根据共享密钥(保留服务器端)和时间戳的哈希动态生成URL.用户通过身份验证后,应用服务器将向下传递此URL,然后客户端将使用它来建立到MQTT代理的连接.过了一会儿,URL将过期,Javascript客户端可以捕获此异常,如果用户仍然经过身份验证,则可以请求新的WS连接URL.这与许多API身份验证类似.它有价值吗?

有更好的方法吗?

谢谢,J.

1 个回答
  • 现在您可以使用libwebsockets支持构建mosquitto,然后为TLS支持创建X.509证书,而不是Lighttpd方法.

    在jpmens的博客文章中,您可以找到一步一步的程序,还可以找到通过Websockets连接Mosquitto代理的Paho MQTT JavaScript客户端. http://jpmens.net/2014/07/03/the-mosquitto-mqtt-broker-gets-websockets-support/

    2023-01-07 09:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有