找到 1 篇与 Telegram 相关的结果
-
Telegram 付费入群机器人代码,审计报告 & 宝塔部署教程 Telegram 付费入群机器人 代码审计报告 & 宝塔部署教程 项目:telegram-paid-group-verify(Python 3.10+ / python-telegram-bot v22 / aiohttp / OkPay) 🛡️ 安全审计:通过(无后门)⚠️ 1 项高危需立即处理📢 品牌文案:狗凯源码库 bbbb.bid🚀 宝塔部署 8 步走 0 后门 / 恶意代码 1 高危:Bot Token 泄露 2 中危:配置与数据残留 8 步 宝塔部署教程 一、代码审计结论 对全部 24 个 Python 文件、配置、CI 工作流逐行审计,未发现后门或恶意行为: 审计项结果结论后门 / 恶意代码全库无 eval / exec / subprocess / 隐蔽 socket 外连 / base64 解码执行,依赖仅 3 个正规库(python-telegram-bot、aiohttp、python-dotenv)安全数据外传唯一外部请求为 OkPay 商户 API(api.okaypay.me),与业务一致安全支付回调验签HMAC-SHA256 + hmac.compare_digest 恒定时间比较;验签失败回 400,防伪造到账规范结算幂等性同一订单不会重复发链接 / 重复记返利;订单超时前主动查单兜底规范权限控制/stats /paytest /config 及返利确认均校验 ADMIN_IDS;回调按钮二次校验规范⚠️ Bot Token 泄露.env 内含真实 BOT_TOKEN(源码包作者遗留)。任何人拿到即完全控制机器人高危数据残留data/store.json 含原作者测试用户数据(已按需求原样保留,上线前可自行决定是否清空)已保留杂项根目录 package-lock.json 与 __pycache__ 为无用文件,可删除;.github/workflows/ci.yml 仅做语法检查,无风险建议清理 ⚠️ 部署前必做:立即到 Telegram @BotFather → /mybots → 选择机器人 → API Token → Revoke current token 换新 Token,旧 Token 视为已泄露。同时 .env 里的原作者 ADMIN_IDS、SUPPORT_URL、NOTIFY_USERNAME 等要全部换成自己的,否则原作者可能收到订单通知。 二、宝塔面板部署教程(8 步) 1 准备材料 部署前凑齐以下 5 样: 材料获取方式Bot Token@BotFather → /newbot(换掉泄露的旧 Token)你的 Telegram 数字 ID私聊 @userinfobot目标付费群 ID-100 开头的超级群 ID,拉机器人进群发 /id 获取OkPay 商户商户机器人开通,拿到 App ID + Token域名一个如 pay.example.com,A 记录解析到服务器 IP(回调必须 HTTPS) 机器人必须是目标群的管理员,并勾选「邀请用户」权限,否则无法生成进群链接。 2 上传代码 + 安装依赖 宝塔面板 → 文件 → 上传本项目到 /www/wwwroot/paid-group-bot(或用终端 git 拉取),然后在宝塔终端执行: 进入目录并创建虚拟环境 cd /www/wwwroot/paid-group-bot python3 -m venv .venv source .venv/bin/activate pip install -U pip pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 要求 Python ≥ 3.10(推荐 3.11/3.12)。宝塔「Python 项目管理器」若无合适版本,先在管理器里安装。 3 配置 .env(重点,必改项见下表) 编辑项目根目录 .env,至少修改以下 7 项: BOT_TOKEN=# 新申请的 Token(旧 Token 已泄露,必须换) ADMIN_IDS=# 你自己的 Telegram 数字 ID(删掉原作者的 1351132825) TARGET_GROUP_ID=# 你的付费群 ID(-100 开头) CHANNEL=# 欢迎语频道展示,可写 @你的频道 或留空 SUPPORT_URL=# 你的客服链接 https://t.me/你的客服号 NOTIFY_USERNAME=# 你的展示用户名(不含@,删掉原作者的 kzrrr) WEBHOOK_PUBLIC_BASE=# https://pay.example.com(换成你的域名,无尾斜杠) OkPay 收款需另填 OKPAY_APP_ID 与 OKPAY_TOKEN;只跑 /paytest 演示可不填。 4 宝塔创建 Python 项目(进程守护) 宝塔面板 → 网站 → Python 项目 → 添加 Python 项目: 配置项填写项目路径/www/wwwroot/paid-group-botPython 版本3.11 或 3.12启动方式命令启动(不要选 gunicorn/wsgi)启动命令/www/wwwroot/paid-group-bot/.venv/bin/python -m bot.main端口8090(对应 .env 的 WEBHOOK_PORT)虚拟环境选项目下的 .venv(管理器会自动带 –require-virtualenv 时用此项) 关键:启动方式必须选「命令启动」+ python -m bot.main。这个机器人是 long polling 模式,webhook 回调服务和 Bot 在同一进程,用 gunicorn 托管启动文件会跑不起来。启动后到「日志」确认看到 机器人启动完成:@xxx。 5 新建网站 + 反向代理 宝塔 → 网站 → 添加站点:域名填 pay.example.com,纯静态即可,不建数据库、不建 FTP。然后: 方式一:站点设置 → 反向代理 → 添加反向代理 目标 URL:http://127.0.0.1:8090 发送域名:$host 方式二(等价):直接在站点配置文件里加: location / { proxy_pass http://127.0.0.1:8090; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;} 6 申请 SSL 证书(必须) 站点设置 → SSL → Let’s Encrypt → 勾选域名 → 申请,并开启「强制 HTTPS」。OkPay 回调地址必须是公网 HTTPS: https://pay.example.com/pay/okpay/callback 安全建议:宝塔防火墙 / 安全组里不要放行 8090 端口,让回调只走 Nginx 反代,外网无法直连后端。 7 OkPay 后台登记回调 OkPay 商户后台 / 商户机器人里,把全局回调地址设为上面那条回调 URL,同时 .env 保持: OKPAY_SEND_CALLBACK_URL=false 后台已有全局回调时,下单再传 callback_url 会被 OkPay 拒绝(报「callback_url 参数验证失败」),保持 false 即可。 8 验收 & 日常运维 按下面清单逐项打勾,全部通过即可开张: 进程存活:宝塔 Python 项目状态为「运行中」 健康检查:浏览器访问 https://pay.example.com/health 返回 {"status":"ok"} 机器人私聊:发 /start,看到欢迎语(含狗凯源码库品牌)+ 底部四键菜单 群权限:在群里发 /id 拿到群 ID 回填 .env 并重启项目 演示闭环:管理员发 /paytest,能收到一次性进群链接 真实支付:点「付费进群」→ OkPay 付款 → 自动收到进群链接 返利链路:邀请链接拉新 → 好友付费 → 管理员确认 → OkPay 出款 日常运维:改 .env 后在宝塔项目里点「重启」;定期备份 data/store.json(所有用户/订单/返利数据都在这一个文件里);看日志用宝塔项目「日志」或 journalctl。 三、.env 配置修改对照表 变量必改说明BOT_TOKEN必须换新 Token(旧的在源码包里已泄露)ADMIN_IDS必须删掉原作者 1351132825,填自己的数字 ID,多个逗号分隔TARGET_GROUP_ID必须-100 开头的付费群 ID;先填 0 启动后拉群发 /id 获取CHANNEL建议原作者写「源码分享网测试」,换成你的频道或留空SUPPORT_URL / SUPPORT_USERNAME / NOTIFY_USERNAME / ADMIN_USERNAME建议原作者均为 kzrrr,全部换成自己的WEBHOOK_PUBLIC_BASE必须https://你的域名,无尾斜杠,必须 HTTPSCURRENCY可选USDT / TRX / CNY,与 OkPay 商户能力一致PRICE_TIERS / PRICE_DEFAULT可选阶梯定价:默认前 20 人 66U、之后 88U,按需修改(也可上线后 /config 在线改)REBATE_RATE可选返利比例,默认 0.1(10%)ORDER_TTL_SECONDS可选订单有效期,默认 90 秒OKPAY_APP_ID / OKPAY_TOKEN收款必填OkPay 商户机器人「商户信息」里查看;Token 仅本地算签勿泄露OKPAY_SEND_CALLBACK_URL保持保持 false,回调走 OkPay 后台全局配置WEBHOOK_PORT保持默认 8090,与宝塔项目端口一致即可;防火墙不要放行 四、常见问题排查 现象排查方向支付成功但没收到进群链接回调地址是否 200(看宝塔项目日志有无「收到 okpay 回调」);机器人是否仍有群「邀请用户」权限;TARGET_GROUP_ID 是否正确。订单超时前系统会主动查单补发下单报 callback_url 校验失败保持 OKPAY_SEND_CALLBACK_URL=false,回调统一在 OkPay 后台登记签名失败 / 身份认证失败核对 OKPAY_APP_ID、OKPAY_TOKEN;服务器开启 NTP 校时(时间偏差 ±300 秒会被拒签)无法生成进群链接把机器人设为目标群管理员,勾选「邀请用户 / 管理邀请链接」权限健康检查不通先在服务器上 curl 127.0.0.1:8090/health:通则是 Nginx 反代/证书问题;不通则项目没启动,检查启动命令必须是 python -m bot.main宝塔里 gunicorn 启动失败本项目不是 Web 应用,不能用 gunicorn 托管,改为「命令启动」+ .venv/bin/python -m bot.main 资源下载 隐藏内容,请前往内页查看详情 本资源售价9.9元,购买后即可查看下载地址。如有问题请联系站长。