Scroll to top

DSSRF — مكتبة دفاع ضد SSRF مدرجة لدى OWASP

  • Home
  • المشاريع
DSSRF — Defend. Validate. Protect. A JavaScript library that blocks SSRF attacks by validating URLs before outbound requests.
Secure development

نظرة عامة على المشروع

‏DSSRF مكتبة JavaScript مفتوحة المصدر كتبتها وأتولى صيانتها. تتحقق من الرابط وتنقّيه قبل أن يرسل تطبيقك أي طلب صادر، فيُوقَف تزوير الطلب من جانب الخادم عند البوابة. وقد وُجدت لأنني ظللت أعيد كتابة شفرة التحقق نفسها في مهمة بعد مهمة، وظللت أرى الفرق تخطئ فيها بفروق دقيقة في المواضع نفسها — في صيغ IPv6 أو في معالجة إعادة التوجيه عادةً. تحزم DSSRF تلك المعرفة في وحدة واحدة خفيفة الاعتماديات تجلس أمام أي عميل HTTP تستخدمه أصلًا. وهي مدرجة الآن لدى مؤسسة OWASP ضمن أدوات أمن التطبيقات المجانية مفتوحة المصدر كأداة دفاع، بأكثر من 300 ألف تنزيل على npm وأكثر من مليون وصول عبر GitHub.

300K+تنزيل على npm
1M+وصلت عبر GitHub
OWASPمدرجة كأداة دفاع
MITمجانية ومفتوحة المصدر

التحديات

  1. التحقق من الوجهة لا من سلسلة الرابط النصية، لأن اسم المضيف قد يُترجم إلى عنوان داخلي.
  2. تغطية كل صيغ IPv6 — الاسترجاع المحلي، والفريدة المحلية، والوصلة المحلية، وIPv4 المُسقطة، وNAT64 — دون ثغرات.
  3. إغلاق سلاسل إعادة التوجيه وبادئات معلومات المستخدم (user@host) عند كل قفزة، لا عند الرابط الأول فحسب.
  4. منع تغيّر إجابة DNS بين الفحص والاتصال (إعادة ربط DNS).
  5. إبقاء المكتبة صغيرة وقابلة للتدقيق كي لا تصبح أداة الدفاع نفسها سطح هجوم جديدًا.

المنهج

  1. التحقق وقت الترجمة لا وقت التحليل، بفحص كل عنوان مُعاد مقابل قائمة المنع.
  2. شحن قائمة منع تغطي افتراضيًا النطاقات الخاصة وذات الاستخدام الخاص في IPv4 وIPv6 معًا.
  3. إعادة تشغيل التحقق نفسه عند كل قفزة حين تُتبع عمليات إعادة التوجيه.
  4. مهاجمة مكتبتي باستمرار ونشر ما أجده وإصلاحه، بدل افتراض أنها صحيحة.
  5. الإصدار برخصة MIT بحيث يتبنّاها أي مشروع JavaScript بأسطر قليلة.

معترف بها من OWASP

«dssrf — للدفاع ضد هجمات SSRF عبر توفير عدد كبير من الأدوات المساعدة للتحقق؛ تدمجها مع عميل الويب لديك قبل إرسال الطلب، فتتحقق من الرابط للقضاء على هجمات SSRF.»

— مؤسسة OWASP، أدوات أمن التطبيقات المجانية مفتوحة المصدر (أدوات الدفاع)

مهاجمة مكتبتي أنا

أداة الدفاع لا تكسب الثقة إلا إذا كان أحدهم يهاجمها. أواصل البحث في مكتبتي ونشر ما أجده:

  • CVE-2026-44232 — تجاوز قائمة السماح في SSRF عبر IPv6 (بدرجة CVSS 8.7). أُصلح في 1.0.3.
  • CVE-2026-54722 — تجاوز SSRF ناتج عن الإصلاح غير المكتمل في 1.0.3 (خطورة عالية).
  • CVE-2026-54729 — ثغرة SSRF نحو المضيف المحلي حين يكون 1.1.1.1 هو محلّل DNS. أُصلحت في 1.0.5.

نشر الثغرات بدل إخفائها هو ما جعل المكتبة أقوى فعلًا. شغّل أحدث إصدار، واقرأ الإرشادات المنشورة.