محدد معدل الطلبات ليس وسيلة تحكم أمنية

قام بوت بسحب جميع البيانات الخاصة بجواز سفر واحد من الـ API الخاص بي في دقائق معدودة.

لم يمنعه محدد معدل الطلبات الخاص بي.

كان الحد هو 3,000 طلب شهرياً. بينما لا يتطلب الفحص الكامل لجواز السفر سوى 195 طلباً. ظل البوت تحت الحد المسموح به وسرق كل شيء.

تحديد معدل الطلبات يحمي تكاليف بنيتك التحتية، لكنه لا يحمي بياناتك.

إذا خلطت بين هاتين الفكرتين، فستتسبب في تسريب بياناتك.

يطرح محدد معدل الطلبات سؤالاً واحداً: هل يكلفني هذا العميل الكثير من المال في الوقت الحالي؟

تتعمد أدوات الكشط (Scrapers) البقاء تحت ذلك الخط. كان برنامج الكشط الخاص بي يعمل بمعدل 25 طلباً في الدقيقة، وهو حمل ضئيل جداً. سيتطلب الأمر 40,000 طلب فقط لنسخ مجموعة بياناتي بالكامل. وإذا استخدم المخترق العديد من الحسابات المجانية، فلن يتمكن أي حد لحجم الطلبات من كشفه.

توقف عن النظر إلى الحجم. انظر إلى الهوية، والتغطية، والنمط.

لقد ارتكبت خطأين. أولاً، لم أقم بتسجيل عنوان IP المصدر. يمكن للمخترق ببساطة التسجيل مرة أخرى مجاناً.

قم بإصلاح سجلاتك أولاً. أضف أعمدة لعنوان IP والدولة إلى قاعدة بياناتك. استخدم عنوان IP الحقيقي للعميل من Cloudflare بدلاً من العنوان البعيد (remote address). يتيح لك هذا حظر المهاجمين في طبقة الشبكة.

ثانياً، قم بتغيير حدودك.

لا تكتفِ بتحديد عدد الطلبات شهرياً. بل حدد عدد الوجهات المختلفة التي يمكن لجواز سفر واحد فحصها يومياً. المستخدم الحقيقي يفحص وجهات قليلة، بينما يحاول برنامج الكشط فحصها جميعاً.

عملية مسح البيانات لها بصمة محددة:

  • تتسم بالكثافة.
  • تتسم بالتسلسل.
  • تغطي كل شيء لمصدر واحد.

يمكنك اكتشاف هذا النمط من خلال النظر إلى نافذة زمنية منزلقة (sliding window) للنشاط. إذا قام جواز سفر واحد بالوصول إلى وجهات كثيرة جداً في وقت قصير، فقم بتمييزه. قم بتقليل سرعة ذلك المفتاح (key) أو احظره فوراً.

الآن، أنت تتفاعل مع السلوك بدلاً من مجرد عد الأرقام.

قسم استراتيجيتك إلى مهمتين:

  1. محدد معدل الطلبات: لحماية أموالك. استخدم حدوداً لحجم الطلبات لكل مفتاح (per-key).
  2. الدفاع ضد الاستخراج: لحماية بياناتك. استخدم الهوية، والتغطية، والوتيرة (cadence).

إذا كان لديك محدد معدل طلبات فقط، فأنت تملك ضابطاً للفواتير، وليس لديك أمن.

المصدر: https://dev.to/mathis_higuinen_6db9b244c/your-rate-limiter-is-not-a-security-control-4b3f