
আধুনিক ওয়েব অ্যাপ্লিকেশনগুলো প্রতিনিয়ত DDoS (Distributed Denial of Service) আক্রমণ ও বিভিন্ন ক্ষতিকর বট দ্বারা হুমকির মুখে থাকে। যদি আপনি একটি Next.js অ্যাপ চালান, তবে সেটিকে ট্রাফিক ফ্লাড থেকে সুরক্ষিত রাখা খুবই জরুরি — নাহলে অ্যাপ ডাউন হয়ে যেতে পারে, পারফরম্যান্স নষ্ট হবে এবং খরচ বেড়ে যাবে।
এই আর্টিকেলে আমরা দেখবো কীভাবে Next.js অ্যাপকে DDoS ও বট আক্রমণ থেকে বাঁচানো যায় Middleware, CDN/WAF, caching ও monitoring ব্যবহারের মাধ্যমে।
🚨 কেন DDoS ও বট আক্রমণ বিপজ্জনক
- সার্ভার ক্র্যাশ → সেকেন্ডে হাজার হাজার রিকোয়েস্ট সার্ভারকে অচল করে দিতে পারে।
- অতিরিক্ত খরচ → Vercel বা AWS Lambda-এর মতো সার্ভারলেস প্ল্যাটফর্ম প্রতি রিকোয়েস্টে চার্জ করে, আক্রমণ হলে বিল আকাশছোঁয়া হয়ে যায়।
- ডাউনটাইম → আসল ব্যবহারকারীরা স্লো রেসপন্স বা পুরোপুরি ডাউন অবস্থায় পড়তে পারে।
- সিকিউরিটি রিস্ক → বটরা অনেক সময় brute-force login বা credential stuffing চেষ্টা করে।
⚡ Middleware একা কেন যথেষ্ট নয়
Next.js Middleware দিয়ে rate limiting বা রিকোয়েস্ট ফিল্টারিং যোগ করা যায়। তবে:
- Middleware চালু হয় ট্রাফিক সার্ভারে পৌঁছানোর পর।
- বড় আকারের DDoS হলে serverless invocation খরচ বেড়ে যায় বা সার্ভার ডাউন হয়ে যায়।
- Middleware মূলত ছোটখাটো অপব্যবহার ঠেকানোর জন্য কার্যকর, বড় ট্রাফিক ফ্লাডের জন্য নয়।
👉 তাই শুধু Middleware নয়, বহু স্তরের (multi-layer) প্রতিরোধ ব্যবস্থা দরকার।
🛡️ CDN ও WAF: প্রথম প্রতিরক্ষা স্তর
সবচেয়ে কার্যকর পদ্ধতি হলো ম্যালিসিয়াস ট্রাফিক সার্ভারে পৌঁছানোর আগেই ব্লক করা।
- Cloudflare → DDoS প্রোটেকশন, বট ম্যানেজমেন্ট, রেট-লিমিটিং রুল।
- AWS CloudFront + WAF + Shield → AWS-এ হোস্ট করা অ্যাপের জন্য এন্টারপ্রাইজ-গ্রেড সিকিউরিটি।
- Vercel Firewall ও Attack Challenge Mode → Vercel-এ ডেপ্লয় করা Next.js অ্যাপের জন্য বিল্ট-ইন প্রোটেকশন।
👉 এগুলোর মাধ্যমে আক্রমণগুলো **edge লেভেলেই বাদ পড়ে যায়**, ফলে সার্ভার সুরক্ষিত থাকে।
⚙️ Next.js Middleware দিয়ে Rate Limiting
অতিরিক্ত সুরক্ষার জন্য প্রতিটি IP ভিত্তিতে rate limiting যোগ করা যায়। উদাহরণ (Upstash Redis + Middleware):
// middleware.ts
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { Ratelimit } from "@upstash/ratelimit";
import { Redis } from "@upstash/redis";
// Redis কানেকশন
const redis = new Redis({
url: process.env.UPSTASH_REDIS_REST_URL!,
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
});
// প্রতি IP: মিনিটে সর্বোচ্চ ৬০ রিকোয়েস্ট
const ratelimit = new Ratelimit({
redis: redis,
limiter: Ratelimit.slidingWindow(60, "1 m"),
});
export async function middleware(req: NextRequest) {
const ip = req.ip ?? req.headers.get("x-forwarded-for") ?? "unknown";
const { success } = await ratelimit.limit(ip);
if (!success) {
return new NextResponse("অনেক বেশি রিকোয়েস্ট পাঠানো হয়েছে", { status: 429 });
}
return NextResponse.next();
}
export const config = {
matcher: ["/api/:path*"],
};
✅ ছোটখাটো অপব্যবহার ঠেকাবে
❌ বড় DDoS আক্রমণ ঠেকাতে পারবে না (তার জন্য CDN/WAF দরকার)
📦 Caching ও Bandwidth কমানো
Caching ব্যবহার করলে আক্রমণের সময় সার্ভারের লোড অনেক কমে যায়:
- Next.js ISR (Incremental Static Regeneration) ও
stale-while-revalidate
ব্যবহার করুন। - Static assets (JS, CSS, ইমেজ) CDN-এ cache করে রাখুন।
- বড় ফাইল (ইমেজ/ভিডিও) আলাদা CDN-এ রাখুন।
🤖 Bot Challenge ও CAPTCHA
সন্দেহজনক রিকোয়েস্ট (যেমন লগইন, সাইনআপ, পেমেন্ট):
- CAPTCHA (reCAPTCHA, hCaptcha) ব্যবহার করুন।
- Cloudflare বা Vercel Firewall-এর challenge pages চালু করুন।
- খারাপ IP reputation থেকে আসা ট্রাফিক ব্লক করুন।
📊 মনিটরিং ও Incident Response
Defensive ব্যবস্থা নিলেও মনিটরিং ছাড়া পূর্ণ নিরাপত্তা হয় না:
- CloudWatch, Datadog, Sentry ব্যবহার করে স্পাইক মনিটর করুন।
- ট্রাফিক হঠাৎ বেড়ে গেলে alert system চালু রাখুন।
- রানবুক তৈরি করুন:
- Rate-limit IP
- Country/ASN ব্লক করুন
- WAF রুল আরও কড়াকড়ি করুন
- প্রয়োজনে সার্ভার স্কেল করুন
✅ উপসংহার
Next.js অ্যাপকে DDoS ও বট আক্রমণ থেকে বাঁচাতে চাই বহু স্তরের প্রতিরোধ ব্যবস্থা:
- CDN/WAF (Cloudflare, AWS WAF, Vercel Firewall) → বড় ট্রাফিক আক্রমণ ব্লক
- Middleware Rate Limiting → ছোটখাটো অপব্যবহার ঠেকানো
- Caching → ট্রাফিক স্পাইকেও সার্ভার লোড কমানো
- Bot Challenge → লগইন/সাইনআপ বট ঠেকানো
- Monitoring ও Alerts → রিয়েল-টাইমে প্রতিক্রিয়া জানানো
এই কৌশলগুলো একসাথে ব্যবহার করলে আপনার Next.js অ্যাপ হবে অনেক বেশি নিরাপদ 🚀