Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel私人频道的安全性如何?_Laravel_Websocket_Laravel Echo - Fatal编程技术网

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

Laravel私人频道的安全性如何?,laravel,websocket,laravel-echo,Laravel,Websocket,Laravel Echo,我不明白拉威尔的私人频道是怎么运作的 当我收听私人频道时: window.Echo.private('activity') .listen('ActivityCreated', (e) => { console.log("Activity Created", e); } ); Laravel在/broadcasting/auth/上请求验证我的后端是否允许我的前端监听此套接字。交换的信息是一些加密信息 我不明白的是,任何人都可以订阅任何

我不明白拉威尔的私人频道是怎么运作的

当我收听私人频道时:

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库的包装。在幕后,你的Pusher应用程序有很好的文档记录

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

即使您的传输被破坏,您也不应该受到MITM攻击,因为


对于私有频道
channels.php
在这里编写所有安全层,如
return(int)$user->id==(int)$id@KamleshPaul是的,我知道,但我不知道这个安全层是如何工作的。只需检查返回值是否为true,然后允许连接该通道,所以在这里验证正确的人加入正确的channel@KamleshPaul是的,但在幕后,是什么阻止客户端订阅推送套接字?