"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن لـ Nonces تأمين طلبات الويب ضد هجمات إعادة التشغيل؟

كيف يمكن لـ Nonces تأمين طلبات الويب ضد هجمات إعادة التشغيل؟

تم النشر بتاريخ 2024-11-16
تصفح:357

How Can Nonces Secure Web Requests Against Replay Attacks?

كيفية تأمين طلبات الويب باستخدام Nonces

المشكلة

وجد مستخدم طريقة لاستغلال نظام التحقق من صحة الطلب لنظام تسجيل موقع الويب من خلال تكرار طلبات HTTP عالية القيمة. هذا يعرض سلامة وموثوقية النظام للخطر.

الحل: تنفيذ نظام Nonce

Nonces (الرقم المستخدم مرة واحدة) هي قيم تمنع هجمات إعادة تشغيل الطلب عن طريق التأكد من عدم تنفيذ طلب معين. صنع من قبل. فيما يلي طريقة شائعة وآمنة لتنفيذ نظام nonce:

إنشاء والتحقق من جانب الخادم

وظيفة getNonce()

    يحدد العميل الذي يقدم الطلب (على سبيل المثال، من خلال اسم المستخدم، الجلسة).
  • ينشئ رقمًا عشوائيًا باستخدام وظيفة تجزئة آمنة (على سبيل المثال، SHA512).
  • يخزن الرقم في قاعدة بيانات مرتبطة بـ معرف العميل.
  • إرجاع الرقم إلى العميل.

verifyNonce() وظيفة

    جلب الرقم المخزن مسبقًا لمعرف العميل.
  • يزيل الرقم nonce من قاعدة البيانات (لمنع إعادة استخدامه).
  • ينشئ تجزئة مع الرقم nonce المقدم من العميل (cnonce)، وبيانات الطلب، و ملح سري.
  • يقارن التجزئة التي تم إنشاؤها بالتجزئة المقدمة من قبل العميل.
  • يرجع صحيحًا إذا كانت التجزئة متطابقة، مما يشير إلى رقم صالح.
العميل -استخدام الجانب Nonce

وظيفة sendData ()

    يسترد الرقم من الخادم باستخدام وظيفة getNonce ().
  • ينشئ nonce الخاص بالعميل (cnonce) باستخدام وظيفة التجزئة الآمنة.
  • يقوم بربط رقم الخادم ورقم العميل وبيانات الطلب.
  • ينشئ تجزئة من القيمة المتسلسلة.
  • يرسل الطلب إلى الخادم، بما في ذلك البيانات والبيانات والتجزئة.
اعتبارات الأمان

  • إنشاء عشوائي: The makeRandomString( ) يجب أن تولد الدالة أرقامًا عشوائية لا يمكن التنبؤ بها إلى حد كبير لتعزيز الأمان.
  • وظيفة التجزئة الآمنة: استخدم وظيفة تجزئة قوية مثل SHA512 أو bcrypt لحسابات التجزئة غير المرتبطة.
  • الاستخدام الفردي لكل طلب: يجب استخدام Nonces مرة واحدة فقط وإزالتها من التخزين لمنع هجمات إعادة التشغيل.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3