مرحبا ’ أريد طريقة الحماية من طلبات Requests التي تتخطى الملايين
مما تسبب وقوف السيرفر لمدة دقائق
لغة البرمجة Nodejs / Socket.io / server linux
لحماية الخوادم من هجمات تكرار الطلبات، يمكن اتخاذ عدة إجراءات للحماية باستخدام Node.js وSocket.io:
يمكن استخدام middleware في Node.js لتحديد حدود لمعدل الطلبات من عناوين IP. مثل استخدام مكتبة مثل `express-rate-limit` لتحديد عدد معين من الطلبات في فترة زمنية محددة.
2. استخدام وحدة تحكم (Firewall) على مستوى النظام:
عن طريق استخدام جدار حماية (firewall) على مستوى نظام التشغيل لتقييد الوصول إلى الخادم من خلال العناوين IP المشبوهة.
3. تقييد الاتصالات باستخدام Socket.io:
يمكن تحديد قاعدة لتحديد من يمكنه الاتصال بالسيرفر عبر Socket.io. قد ترغب في فرض قاعدة للسماح بالاتصالات فقط من العناوين IP المعتمدة.
4. استخدام حماية DDOS:
قد ننظر إلى حلول حماية DDoS مثل Cloudflare لفحص وتصفية حركة المرور الواردة ومنع هجمات تكرار الطلبات.
تكامل هذه الإجراءات برأيب يمكن أن يقلل من تأثير هجمات تكرار الطلبات ويحافظ على استقرار الخادم.
يوجد مكتبة express-rate-limit ومن المفترض أنك قمت بتجربتها من قبل على ما أعتقد، بحيث نقوم بالسماح لكل عنوان ip بعدد محدد من الطلبات في وقت معين، وليكن 5 طلبات كالتالي:
const express = require('express'); const rateLimit = require('express-rate-limit'); const limiter = rateLimit({ windowMs: 60 * 1000, // 1 minute max: 5, // الحد الأقصى لعدد الطلبات في الدقيقة message: 'Too many requests from this IP, please try again later.' }); const app = express(); app.use(limiter);
التعليقات