تأمين حمولات خطاف الويب باستخدام سر

مكتمل

بعد تكوين الدالة الخاصة بك لتلقي البيانات الأساسية، سوف تستمع لأي بيانات أساسية يتم إرسالها إلى نقطة النهاية التي قمت بتكوينها. قد ترغب في قصر الطلبات على الطلبات الواردة من GitHub لأسباب أمنية. وهناك عدة طرق للقيام بذلك. على سبيل المثال، يمكنك اختيار الموافقة على الطلبات من عنوان IP الخاص بـ GitHub. تتمثّل الطريقة الأسهل في إعداد رمز مميز سري والتحقق من صحة الطلب باستخدام هذا الرمز المميز.

في السيناريو الموفر كمثال، تشعر إدارة قسم تكنولوجيا المعلومات لديك بالرضا عن دالة خطاف الويب المُشغّلة التي أنشأتها في تطبيق Azure Functions. تُحلل تلك الدالة جميع المعلومات المتعلقة بتحديثات موقع wiki الخاص بالشركة وتُرسلها إلى الشركة، في كل مرة يتم فيها تشغيل حدث Gollum. لقد سألت الإدارة عن مدى أمان المعلومات التي يتم تمريرها من GitHub. طلبوا منك العثور على طريقة لتأمين المعلومات، والتحقق من أن GitHub هو الذي يرسل التحديثات.

ستتعلم في هذه الوحدة كيفية تأمين حمولة خطاف الويب الخاصة بك بسر والتحقق من صحتها من GitHub.

الرموز السرية الخاصة بخطاف الويب

يتيح لك إعداد سر لخطاف الويب التأكد من أن طلبات POST المرسلة إلى عنوان URL للحمولة تأتي من GitHub. عند تعيين سر، ستتلقى العنوان الرأسي x-hub-signature في طلب خطاف الويب POST.

في GitHub، يمكنك تعيين حقل secret بالانتقال إلى المستودع الذي أعددت فيه إخطار الويب، ثم تعديل إخطار الويب. سنوضح لك كيفية القيام بذلك في المثال الذي نعرضه في التمرين التالي.

التحقق من صحة البيانات الأساسية من GitHub

عند تعيين الرمز المميز السري الخاص بك، يستخدمه GitHub لإنشاء توقيع تجزئة لكل حمولة. يُمرر توقيع التجزئة هذا مع كل طلب في العناوين الرأسية كـ x-hub-signature.

عندما تتلقى دالتك طلباً، فستحتاج إلى حساب التجزئة باستخدام رمزك السري، والتأكد من أنها تتطابق مع التجزئة في العنوان الرأسي للطلب. يستخدم GitHub ملخص HMAC SHA1 السداسي لحساب التجزئة، لذلك يجب عليك حساب التجزئة الخاصة بك بالطريقة نفسها، باستخدام المفتاح السري ونص الحمولة الأساسي الخاص بك. يبدأ توقيع التجزئة بالنص sha1=.