از آنجا که آدرس‌های وب‌هوک در اینترنت عمومی قرار دارند، مهاجمان ممکن است اقدام به ارسال پی‌لودهای جعلی کنند. برای حفاظت کامل از سرور و ربات خود، باید سه لایه امنیتی زیر را پیاده‌سازی کنید.

۱. استفاده از secret_token در متد setWebhook

هنگام تنظیم وب‌هوک، یک توکن تصادفی قدرتمند در پارامتر secret_token قرار دهید:

await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/setWebhook`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    url: 'https://api.zentry.ir/webhook',
    secret_token: 'MY_SUPER_SECRET_RANDOM_TOKEN_123456789'
  })
});

۲. اعتبارسنجی هدر در سرور وب‌هوک

تلگرام این مقدار را در هدر X-Telegram-Bot-Api-Secret-Token ارسال می‌کند. در صورتی که هدر مطابقت نداشته باشد، بلافاصله درخواست را با کد ۴۰۳ رد کنید:

export async function onRequestPost({ request, env }) {
  const secretHeader = request.headers.get('X-Telegram-Bot-Api-Secret-Token');
  if (secretHeader !== env.WEBHOOK_SECRET) {
    return new Response('Unauthorized', { status: 403 });
  }

  // پردازش امن پیام
  return new Response('OK', { status: 200 });
}

نیاز به ممیزی امنیتی و زیرساخت پرسرعت دارید؟

متخصصان زیرساخت زنتری آماده ایمن‌سازی سرویس‌های تلگرامی شما هستند.