You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否制作网站表单发信息至WhatsApp/Telegram?及Bot Token防窃取方案

解决方案

一、你的Bot Token被窃取的核心原因

你当前的代码直接把Bot Token写在前端JavaScript里——不管怎么混淆,只要别人打开浏览器开发者工具,查看网络请求或者页面源码,都能轻松提取到Token。攻击者拿到Token后,就能调用你的Bot所有API权限,包括获取提交的信息,所以换多少次Token都没用,只要前端还暴露Token,问题就会反复出现。

二、无法直接发送到Telegram手机号

Telegram没有提供直接通过手机号接收表单信息的API,必须通过Bot来处理消息,但可以通过后端中转的方式彻底隐藏Token。

三、正确做法:用后端中转请求

搭建一个简单的后端接口,前端把表单数据发给这个接口,再由后端拿着Bot Token去调用Telegram的sendMessage API。这样Token只存在后端服务器里,前端完全接触不到,从根源上避免被窃取。

示例后端代码(Node.js)

const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());

// Token和聊天ID只存在后端,前端看不到
const TELEGRAM_BOT_TOKEN = '你的Bot Token';
const CHAT_ID = '你的Telegram聊天ID(可通过Bot获取)';

app.post('/send-to-telegram', async (req, res) => {
  try {
    const formData = req.body;
    // 整理表单内容为易读的消息格式
    const message = `新表单提交:\n姓名:${formData.name}\n邮箱:${formData.email}\n留言:${formData.message}`;
    
    await axios.post(
      `https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage`,
      { chat_id: CHAT_ID, text: message }
    );
    res.status(200).send('消息发送成功');
  } catch (error) {
    console.error(error);
    res.status(500).send('消息发送失败');
  }
});

app.listen(3000, () => {
  console.log('后端服务运行在3000端口');
});

修改后的前端代码

前端不再直接调用Telegram API,转而请求你的后端接口:

var o = new XMLHttpRequest();
o.open("POST", "/send-to-telegram"),
o.setRequestHeader("Content-Type", "application/json"),
o.send(JSON.stringify(formdata)); // 需将表单数据转为JSON格式

四、发送到WhatsApp的方法

如果要发送到WhatsApp,同样不能在前端暴露敏感信息,必须通过后端中转。可以使用WhatsApp Business API,后端处理前端提交的表单数据后,调用WhatsApp的API发送消息即可。

额外提醒

  • 所有涉及API密钥、Token的操作,绝对不能放在前端执行,必须交由后端处理。
  • 可以给后端接口加简单验证,比如校验请求来源、添加验证码,防止恶意刷请求。

内容的提问来源于stack exchange,提问作者wael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:01:08