From 3a810b566d87f9a80ec46216d80e8f9683b933db Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Fri, 13 Jan 2023 14:22:19 +0800 Subject: [PATCH] add connection information checker for internal plugin --- src/ZM/Plugin/OneBot12Adapter.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ZM/Plugin/OneBot12Adapter.php b/src/ZM/Plugin/OneBot12Adapter.php index e0619932..4da88d17 100644 --- a/src/ZM/Plugin/OneBot12Adapter.php +++ b/src/ZM/Plugin/OneBot12Adapter.php @@ -255,7 +255,8 @@ class OneBot12Adapter extends ZMPlugin { // 判断是不是 OneBot 12 反向 WS 连进来的,通过 Sec-WebSocket-Protocol 头 $line = explode('.', $event->getRequest()->getHeaderLine('Sec-WebSocket-Protocol'), 2); - if ($line[0] !== '12') { + // 如果不是 12 并且在这个最低等级事件之前还没有设置了连接信息的,一律干掉 + if (empty(ConnectionUtil::getConnection($event->getFd())) && $line[0] !== '12') { logger()->warning('不允许接入除 OneBot 12 以外的 WebSocket Client'); $event->withResponse(HttpFactory::createResponse(403, 'Forbidden')); $event->stopPropagation();