Laravel私人频道的安全性如何?

问题描述

我不了解Laravel中的私人频道如何工作。

当我收听私人频道时:

window.Echo.private('activity')
    .listen('ActivityCreated',(e) => {
        console.log("Activity Created",e);
    }
);

Laravel在/broadcasting/auth/上发出一个请求,以验证我的后端是否允许我的前端侦听此套接字。交换的信息是一些加密的信息。

我不了解的是,任何人都可以订阅任何频道:

./pusher channels apps --app-id=12345678 --channel=private-activity subscribe
Successfully subscribed to channel 'private-activity'.
Event: channel=private-activity event=App\Events\ActivityCreated message=[]

我想念什么?

解决方法

Laravel Echo不仅仅是Pusher库UTSL的包装。在幕后,您拥有记录here

的Pusher应用程序

仅当服务器routes/channels.php对请求进行签名后,Pusher才允许连接到专用频道。一旦您的后端允许客户端访问通道,它只需将授权JWT返回给客户端,客户端再将其作为访问密钥通过WSS转发给Pusher。

即使您的传输受到威胁,您也不应因为受到MITM攻击而脆弱。

enter image description here