From c531fde2bafb7910cc20695da1f802ab73bc945e Mon Sep 17 00:00:00 2001 From: hotyue Date: Mon, 10 Aug 2026 04:29:19 +0000 Subject: [PATCH] fix: callback auth uses CHAT_ID instead of user ID to prevent blocking all callbacks - SENDER_ID (user ID) != MASTER_CHAT_ID (chat ID) caused all button callbacks to be rejected - Switch to CHAT_ID comparison which is already correctly extracted from the update - Add -n guard so unconfigured MASTER_CHAT_ID doesn't break existing deployments --- master/tg_master.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/master/tg_master.sh b/master/tg_master.sh index 4f38dcc2..4ff7d8bc 100755 --- a/master/tg_master.sh +++ b/master/tg_master.sh @@ -169,9 +169,9 @@ while true; do MSG_ID=$(echo "$UPDATE" | jq -r '.callback_query.message.message_id // empty') # [安全修复 #106] Telegram 发送者鉴权 — 只有 MASTER_CHAT_ID 能执行特权命令 - SENDER_ID=$(echo "$UPDATE" | jq -r '.message.from.id // .callback_query.from.id // 0' 2>/dev/null) - if [ "$SENDER_ID" != "$MASTER_CHAT_ID" ] && [ "$SENDER_ID" != "0" ]; then - # 静默拒绝非授权用户,不泄露任何信息 + # 使用 CHAT_ID(已从 update 提取)与 MASTER_CHAT_ID 比较,兼容私聊/群组场景 + if [ "$CHAT_ID" != "$MASTER_CHAT_ID" ] && [ -n "$MASTER_CHAT_ID" ]; then + # 静默拒绝非授权 chat,不泄露任何信息 if [ -n "$CB_ID" ]; then curl -s --connect-timeout 5 -m 10 -X POST "https://api.telegram.org/bot${TG_TOKEN}/answerCallbackQuery" \ -d "callback_query_id=${CB_ID}" \