Chapter 3 — Networks & Cybersecurity (الشبكات وأمن الأنظمة)
Quand j’ai commencé à apprendre l’informatique, je me suis rapidement rendu compte d’une chose : presque toutes les ressources étaient en anglais ou en arabe classique.
Pour comprendre une seule notion, il fallait traduire, interpréter, puis essayer de l’adapter à notre réalité tunisienne. Beaucoup d’étudiants se découragent à ce stade : non pas parce qu’ils manquent de curiosité ou d’intelligence, mais simplement parce que la barrière linguistique rend l’accès au savoir plus difficile qu’il ne devrait l’être.
Tech B Derja est né de cette frustration — et d’un rêve : rendre la technologie compréhensible dans la langue que nous utilisons tous les jours.
Je voulais qu’un étudiant, un développeur débutant, ou même quelqu’un qui aime la tech sans être ingénieur, puisse ouvrir ce livre et dire : “Ah, enfin un cours qui parle comme moi.”
Parce que la Derja n’est pas un obstacle : c’est un pont entre notre culture et la connaissance moderne.
Ce livre n’a pas la prétention d’être académique. Il cherche simplement à expliquer les grands principes du Software Engineering d’une manière directe, humaine, et fidèle à notre manière tunisienne de raisonner : simple, concrète, et souvent pleine d’humour.
Les termes techniques restent en anglais — parce qu’ils font partie du langage universel des ingénieurs — mais tout ce qui entoure ces mots, tout ce qui fait sens, est raconté avec la voix du pays, avec nos expressions, notre ton, notre réalité.
J’espère que Tech B Derja donnera envie à une nouvelle génération de Tunisiens de comprendre la technologie, de créer, et de partager leurs idées.
Si, grâce à ce livre, un étudiant réussit à voir le code autrement — non plus comme une langue étrangère, mais comme un outil qu’il peut maîtriser — alors le pari est gagné.
Sami BELHADJ
Auteur & Formateur en Technologies
Tunis, 2025
Ki bdit ntaallam fi domaine ta3 l’informatique, chft elli akther men 90% men l resources kolhom b anglais, w elli ba9i b 3arbi fous7a ki te9ra fih, t7ess rouhek ta9ra traduction, mochkla fel logha 9bal ma tkon mochkla fel tech.
Bech tfhem concept wahda, tkoun 3andek trois mashakel : logha, contexte, w style ta3 teaching li ma ychabahch lina. W barcha tlamdha ysaybou el parcours 5aterhom ma y9drouch ywaff9ou bin el terminology ta3 tech w el 3arbi el 9adim.
Men hna ja l’idée ta3 Tech B Derja.
7bit na3mel livre tech fi loghetna — Derja — logha li nkalmo beha kol youm, li fahminha, li t3abber 3lina.
7bit el student ki y7ell el livre, y9oul : “eyy, hadha yekalmni, mafhmou w 9rib men 9albi.”
Tech B Derja ma houwech cours académique, houwa mouch dictionary ta3 code.
Houwa kitab yfassar el concepts ta3 Software Engineering b derja sahla, b exemples men el 7ay w b respect lel technical terms fi anglais.
El anglaizi b9a f ma7lou, 5ater el engineer fi el dounya lkol yesta3melha, ama el fahm walla fi loughtek inti.
El message ta3i b ssa7 : el tech ma hyaach 7a9r 3la wa7din, w el Derja ma hyaach 3a9ba.
El Derja najmou biha nfahmou, n5arjou projects kbira, w na3mlou innovation men bladna.
Inchallah Tech B Derja ykoun sabab bich talmidh wala developer tounsi yfhem el code b twensa, y7ess elli el tech 9riba menou, w elli el “engineering” ma houwech logha ghorba, bel hiya logha najmou n5alouha tounsia ken na3rfou kif.
Sami BELHADJ
Auteur w Formateur fi Technologies
Tounes, 2025
من أوّل ما بديت نتعلّم في الإعلاميّة، لحظت حاجة: أغلب الدروس والمصادر يا بالإنڨليزي، يا بالعربي الفصحى اللي ما نحكيوهاش في حياتنا.
باش تفهم فكرة وحدة، لازم ترجّعها في مخّك، وتفسّرها، وتخمّم فيها بثلاث لغات، وهاك اللوجيك يضيع بيناتهم.
وبرشا طلبة صغار ولا حتّى ديڤلوبر جداد، يتقلقو ويوقّفو، موش خاطر ما عندهمش مخّ، أمّا خاطر اللّغة وقفت قدّامهم.
من غادي جات الفكرة متاع Tech B Derja.
قلت: علاش ما نكتبش كتاب في التكنولوچيا بلغتنا نحنا؟
بالدرجة، بالأسلوب اللي نحكيو بيه كلّ يوم، بلا تكليف، بلا فصحى، بلا غُربة.
نحبّ الطالب كي يقرى يقول: “هاو الكتاب هذا يفهمني، يحكي كيفي، ومخّي يمشي معاه.”
Tech B Derja موش كتاب أكاديمي جامد، وموش قاموس متاع كود.
هو كتاب يحكي على مفاهيم Software Engineering بطريقة قريبة، ساهلة، وبأسلوب تونسي يخليك تفهم وتتصوّر.
خليت المصطلحات التقنية بالإنڨليزي خاطرها لغة الكود في العالم الكلّ، أمّا الباقي كلّو تونسي، مفهوم، وديما قريب من الواقع.
الفكرة إنّو التكنولوچيا ما هيش حاجة بعيدة علينا، وما ثماش سبب يخلّينا نحسّوها غريبة.
الدرجة تنجم تكون لغة علم، كيف ما كانت زمان لغة شعر وتاريخ.
بها نجّمو نفسّرو، نتعلّمو، ونبنيو حاجات كبار من بلادنا.
إن شاء الله Tech B Derja يكون سبب باش تلميذ تونسي ولا شابّ ديڤلوبر يفهم الكود بلغتو،
ويحسّ إليّ الدنيا الرقميّة ما هيش للناس اللّي “فهمين وحدهم”،
بل هي لينا الكلّ،
كيف نفهموها بطريقتنا.
سامي بالحاج
كاتب ومكوّن في التكنولوچيا
تونس، 2025
كل application ولا system اليوم مربوط بشبكة.
باش user يوصل للـ server, لازم تمرّ البيانات عبر الإنترنت، واللي هو في الأصل شبكة كبيرة متكوّنة من ملايين الأجهزة مربوطة ببعضها.
باش تفهم كيف السيستام يخدم، لازم تفهم الأساسيات متاع networking:
كيفاش الطلب (request) يمشي من browser متاعك للسيرفر، كيفاش يرجع response, وكيف نحمي هالعملية الكلّ من الاختراقات.
في هالفصل، باش نحكيو على المفاهيم الأساسية:
URL، DNS، HTTP، APIs، REST، GraphQL، Cookies، Sessions، JWT، HTTPS، وشنية طرق الحماية في السيستامات الحديثة.
الـ URL (Uniform Resource Locator) هو العنوان اللي نستعملوه باش نوصلو لأي موقع ولا API.
مثال:
https://www.techbderja.tn:443/articles?id=5
الـ URL هذا يتقسم لأجزاء:
| الجزء | التفسير |
|---|---|
https | البروتوكول (protocol) |
www.techbderja.tn | الدومين (domain name) |
443 | رقم البورت (port) |
/articles | المسار (path) |
?id=5 | الـ query parameters |
كل جزء عندو وظيفة.
البروتوكول يحدّد طريقة الاتصال، الدومين يورّينا السيرفر، والـ path والـ query يورّيو شنوّة نطلبو بالضبط.
الـ DNS هو الكاتالوج متاع الإنترنت.
هو اللي يبدّل الاسم اللي نكتبو (domain) إلى عنوان IP اللي يفهموه السيرفرات.
مثلاً:
www.techbderja.tn → 192.168.1.10
لو ما فماش DNS, لازم نحفظ عناوين IP لكل موقع، حاجة مستحيلة عملياً.
العملية تصير هكّا:
الـ HTTP (HyperText Transfer Protocol) هو البروتوكول الأساسي اللي نستعملوه باش نبعثو ونستقبلو بيانات عبر الويب.
كل مرّة تفتح موقع، browser يبعث HTTP request, والسيرفر يجاوب بـ HTTP response.
لكن HTTP وحدها ما فيهاش تشفير.
يعني أي حد في الطريق ينجم يشوف الـ data (مثلاً كلمات السر).
باش نحمي البيانات، نستعمل HTTPS — نفس البروتوكول أما فيه تشفير عن طريق SSL/TLS.
الـ S في HTTPS تعني Secure.
هو اللي يخلّي الاتصال آمن بينك وبين السيرفر، ويمنع الناس من التّنصّت (sniffing) ولا التلاعب بالبيانات.
الـ API هو الجسر بين التطبيقات.
كيما كي تطلب Uber, الـ app متاعك يبعث API request للسيرفر، والسيرفر يجاوبك بالمعلومات (مثلاً: وين السواق، قداش الكلفة، شنوة الحالة).
الـ APIs تخلّي البرامج تحكي مع بعضها، بلا ما تكون مربوطة مباشرة.
الأنواع الأكثر استعمالاً اليوم:
في REST, كل resource عندها عنوان خاص (endpoint) ونتعامل معاها بطرق كيما GET, POST, PUT, DELETE.
مثلاً:
GET /api/users
POST /api/users
GET /api/users/5
الفايدة: بسيطة ومفهومة، أما فيها عيب: كل request ترجع data ثابتة، حتى لو نحتاجو جزء صغير منها.
في GraphQL, نطلب بالضبط الـ data اللي نحبّها.
السيرفر يرجع كان اللي طلبناه.
مثلاً:
{
user(id: 5) {
name
email
}
}
الفايدة: أسرع، أخف، ومرن برشا.
أما إعدادو أصعب شوية، ومناسب أكثر للـ complex systems.
وقت user يعمل login, لازم السيستام يعرفو في كل request بعديّة.
باش يصير هذا، نستعمل cookies وsessions.
ملف صغير يتخزّن في المتصفح (browser) يحتوي على معلومات user.
كل مرّة تبعث request، الـ cookie تمشي معاها.
تتخزّن في السيرفر، مش في المتصفح.
الـ cookie فيها session ID، والسيرفر يستعملها باش يعرف شكون داخل.
الفرق الرئيسي:
في التطبيقات الحديثة، نستعمل JWT كبديل للجلسات الكلاسيكية.
هي token فيها معلومات user مشفّرة، السيرفر ينجم يتثبّت منها بلا ما يخزّنها.
الـ JWT عندها ثلاث أجزاء:
تتبعث الـ JWT في كل request header, وبهالطريقة السيستام يعرف المستخدم بسرعة.
الـ WebSocket هو نوع خاص من الاتصال بين client وserver.
عوض ما كل مرّة تبعث HTTP request, يفتح خطّ اتصال مباشر وثابت.
مثلاً في chat application, المستخدمين يتبادلو الرسائل في الوقت الحقيقي (real-time).
هنا WebSocket هو الحل، خاطر فيه bi-directional communication (الاتصال في الاتجاهين).
الأمان في السيستام يبدأ من أبسط حاجة: ما نثقوش في المستخدم.
كل input لازم يتفحّص، كل connection لازم يتأمّن.
أكثر المشاكل المعروفة:
يستغلّ المهاجم ضعف في الكود باش يدخل أوامر خايبة للـ database.
الحل: Prepared Statements, ORM, وفلترة البيانات.
المهاجم يدخل JavaScript خايب في صفحات المستخدمين.
الحل: منع إدخال أكواد مباشرة في النصوص، واستعمال escaping.
المهاجم يبعث request باسم المستخدم من غير ما هو يدري.
الحل: CSRF tokens، وفلترة الـ origins.
تصير وقتلي عملية الدخول ما تكونش محمية مزيان.
الحل: كلمات سر قوية، rate limiting, و2FA (Two-Factor Authentication).
التشفير هو اللي يخلّي البيانات المرسلة بين client وserver ما تتقراش من أي طرف ثالث.
أنواع التشفير:
نستعملهم في SSL/TLS, password hashing, وsecure messaging.
ما يلزمناش نخزّنو كلمات السر بنصّها الأصلي.
لازمنا نستعمل hashing algorithms كيما bcrypt, scrypt, ولا Argon2.
الـ hash هو بصمة رقمية مستحيل ترجّع منها الكلمة الأصلية.
وحتى لو hacker سرق الـ database، ما ينجمش يفسّرها بسهولة.
الـ Firewall هو الحارس متاع الشبكة.
يقرر شنوّة يدخل وشنوّة يخرج.
يخدم حسب قواعد (rules) تحدّد:
في الـ cloud systems, الـ firewalls ولات رقمية (Security Groups, Network ACLs).
الـ VPN يسمحلك توصل بالشبكة بطريقة مشفّرة، كأنك داخل من مكان آخر.
يحمي الترافيك متاعك، ويخفي الـ IP الحقيقي.
مفيد وقت تستعمل شبكات عمومية، كيما Wi-Fi متاع كافيه.
الأمان ما يجيش من firewall وحده ولا من encryption وحدو.
هو طريقة تفكير لازم تكون في كل طبقة من السيستام:
الـ Cybersecurity موش حاجة إضافية، هي ثقافة لازم تكون جزء من التطوير اليومي.
الـ Network هي العمود الفقري متاع أي نظام متّصل،
والـ Security هي الدرع اللي يحميه.
باش تفهم كيف السيستام يخدم، لازمك تفهم الرحلة متاع data من المتصفح للسيرفر،
وتعرف كيفاش كل مرحلة ممكن تكون نقطة ضعف.
في عالم اليوم، السيستام القوي موش اللي يخدم برك،
هو اللي يخدم بسرعة، بأمان، ويفضّل حماية المستخدمين قبل كل شي.