كيف يعمل الإنترنت
ماذا يحدث من لحظة كتابة عنوان موقع في المتصفح إلى أن تظهر الصفحة أمامك
- المسار
- الأساسيات
- الوقت المتوقع
- 15 د
- المستوى
- مبتدئ
قبل أن تفهم كيف تخترق المواقع يجب أن تفهم كيف تعمل كل ثغرة ستتعلمها لاحقا هي في النهاية رسالة أرسلت بطريقة لم يتوقعها أحد في هذا الدرس نتتبع رحلة طلب واحد من جهازك إلى الموقع وعودته
العميل والخادم
الإنترنت شبكة من الأجهزة التي تتبادل الرسائل في أغلب ما ستتعامل معه يوجد طرفان:
- العميل (Client): البرنامج الذي يطلب وهو غالبا متصفحك
- الخادم (Server): الجهاز الذي ينتظر الطلبات ويرد عليها وعليه ملفات الموقع وبياناته
المتصفح لا «يفتح» الموقع هو يرسل طلبا والخادم يرد بملفات والمتصفح يرسمها على الشاشة
العناوين: IP و DNS
كل جهاز على الشبكة له عنوان رقمي يسمى رقم يميز الجهاز على الشبكة مثل 203.0.113.10. الرسائل توجه إليه كما توجه الرسالة البريدية إلى عنوان المنزل.. لكن الناس يحفظون الأسماء لا الأرقام ولهذا وجد نظام أسماء النطاقات (DNS).
عندما تكتب example.com يسأل جهازك خادم DNS: ما عنوان IP لهذا الاسم؟ ثم يستخدم الرقم الذي يعود للاتصال بالخادم يمكنك أن ترى ذلك بنفسك:
# اسأل DNS عن عنوان النطاق
nslookup example.comالمنافذ والبروتوكولات
الخادم الواحد قد يشغل عدة خدمات معا: موقع وبريد واتصال عن بعد للتمييز بينها يستخدم كل منها رقم من 0 إلى 65535 يحدد أي خدمة على الجهاز تستقبل الرسالة عنوان IP يوصلك إلى المبنى والمنفذ يوصلك إلى الشقة. مختلفا
| الخدمة | المنفذ المعتاد |
|---|---|
| HTTP (الويب بدون تشفير) | 80 |
| HTTPS (الويب مع تشفير) | 443 |
| SSH (اتصال عن بعد) | 22 |
أما البروتوكول (Protocol) فهو اللغة المتفق عليها لشكل الرسائل المتصفح والخادم يتفاهمان ببروتوكول HTTP وهو موضوع الدرس القادم
رحلة طلب واحد
عندما تكتب https://example.com/about وتضغط Enter يحدث الآتي بالترتيب:
- يسأل المتصفح DNS عن عنوان IP للنطاق
example.com. - يفتح اتصالا بذلك العنوان على المنفذ 443.
- يتفق الطرفان على تشفير الاتصال وهذا ما يعنيه حرف S في HTTPS.
- يرسل المتصفح طلب HTTP يقول: أريد الصفحة
/about. - يرد الخادم برمز الحالة ومحتوى الصفحة
- يقرأ المتصفح المحتوى ويطلب ما يحتاجه من صور وملفات ثم يرسم الصفحة
الطلب في الخطوة الرابعة نص بسيط يمكن قراءته:
GET /about HTTP/1.1
Host: example.com
User-Agent: ExampleBrowser/1.0لماذا يهمك هذا في الأمن
كل خطوة في هذه الرحلة مكان يمكن أن يحدث فيه خطأ:
- إذا وثق الخادم بكل ما في الطلب دون فحص يستطيع المهاجم أن يكتب طلبا لم يتوقعه المبرمج هذا أصل ثغرات مثل SQL Injection و XSS.
- إذا لم يكن الاتصال مشفرا يستطيع من يقف في منتصف الطريق أن يقرأ الرسائل
- إذا ترك منفذ مفتوحا لخدمة منسية صار بابا إضافيا إلى الخادم
اللابات
لابات هذا الدرس قيد الإعداد
