OneCube
16.7K subscribers
30 photos
2 videos
4 files
90 links
Download Telegram
مش عارف ازاي تبدء؟
كمل تحت 👇
18👍7❤‍🔥22🔥1💘1
الخطوة الأولى: Network+ (أو "إزاي تسلك المدعكه دي 👆")


أول حاجة لازم تفهم الشبكات. يعني إيه IP؟ وMAC؟

و حاجات تانيه كتير
شهادة Network+ هتخليك تعرف الحاجات دي وتفهم الشبكة كأنك جواها. فكر فيها كأنك بتتعلم خريطة مدينة قبل ما تروح تسرق بنك (احم أقصد... تحمي بنك طبعًا 🌚).

نصيحة: اتفرج على فيديوهات خفيفة على يوتيوب عشان مش كلنا بنستحمل كتب 500 صفحة.
37👍12👌4🔥3😍21🏆1
الخطوة التانية: Linux+


لو لسه فاكر إن كل حاجة في الكمبيوتر هي ويندوز، لازم تعرف إن اللينكس هو بطل الكواليس في كل حاجة سيكيورتي تقريبًا.
لما تبدأ مع لينكس هتحس إنك دخلت كوكب تاني، بس خدها واحدة واحدة. حاول تجرب أوامر زي:


sudo apt update && sudo apt upgrade


ده هيخليك هكر و سيبك من وجع الدماغ ده.

نصيحة: جرب توزيعة Ubuntu الأول. سهلة وحلوة للمبتدئين
👌2110👍4🔥3🤣31🏆1💘1
الخطوة التالتة: Security+


بص، السيكيورتي+ هي المدخل الرسمي لعالم الأمن السيبراني. الشهادة دي بتعلمك المصطلحات الكبيرة زي "Confidentiality, Integrity, Availability".
هتتعلم كمان إزاي تتعامل مع المخاطر.


نصيحة: ركز في الـThreats and Vulnerabilities، عشان هتلاقيها كتير في الشغل.

و بعد الكورس ده المفروض تكون عارف تخصصات المجال و تعرف تختار تخصصك.
29👍8❤‍🔥3👌21🔥1🏆1💘1
الخطوة الرابعة: البرمجة


لو ما تعلمتش برمجة، هتبقى زي السواق اللي مش بيعرف يغير الكاوتش. لازم تفهم لغة زي:

لغة Python: للمهام اليومية والـAutomation.
لغة Bash: عشان تحكم اللينكس.
👌2311👍4🔥21🏆1💘1
كده دي الاساسيات اللي المفروض تبقي معاك قبل الدخول ف اي تخصصات ف شد حيلك و ابدء ياحبيبي

بالتوفيق ياصديق 🔥👊
This media is not supported in your browser
VIEW IN TELEGRAM
23👍84🔥4❤‍🔥3🤩3🤣3💘2🏆1
OneCube
مش عارف ازاي تبدء؟ كمل تحت 👇
المصادر اللي تذاكر منها


أولاً: الشبكات

عشان تتعلم الشبكات، عندك خيارين:
لو عايز تمشي علي النصيحة؟
شوف البلاي ليست دي:
https://youtube.com/playlist?list=PL7Gr36YWMQJce2BRY8rqxkygVyBb618iF&si=D03koWx49dKS_unJ


لو عايز كورس كامل يغطي كل التفاصيل؟
ده الكورس اللي هيشرحلك كل حاجة:
https://youtube.com/playlist?list=PLLlr6jKKdyK1zEvFvbRefQSngzxoYGID1&si=o34axUQqCkiltOm1

ان شاء الله قريب هشرح الشبكات عملي هنا علي القناة

ثانياً: لينكس

اتعلم اللينكس من واحد من الكورسين دول، شوف اللي يناسبك:
https://youtube.com/playlist?list=PLLlr6jKKdyK1FBi3pLVAmilLvMwWHw-84&si=kaCIdgbpJU873uwy


https://youtube.com/playlist?list=PLLlr6jKKdyK30uy0ikRjFpYMHXd4Cez1I&si=XwgeuD7VXXCPWrC3


الاتنين زي بعض تقريباً، اختار اللي شرح المدرس فيه يعجبك أكتر.


ثالثاً: Security+

لو هنتكلم عن Security+، فلازم نذكر كورس أحمد سلطان:
الإصدار القديم مجاني ومتاح على يوتيوب:
https://youtube.com/playlist?list=PLky4bd7_03m8o1NB0j96OsxZs0KcKlgMO&si=s8_OqJIR-g3OHQbk


الإصدار الجديد مدفوع على موقع NetRiders.
لو مش مستعجل، قريب هيتم نشره مجاناً على موقع HiddenLockTeam.com.


رابعاً: البرمجة

بايثون (Python):
ابدأ بكورس الزيرو، شوف لحد الفيديو 133، ولو كملت باقي الكورس هيكون أفضل:
https://youtube.com/playlist?list=PLDoPjvoNmBAyE_gei5d18qkfIe-Z8mocs&si=GuNdFlBwULWphEOp



باش (Bash):
ده كورس لازم تشوفه بالكامل:
https://youtube.com/playlist?list=PLBdyyeW_Z41DykncH9zzMk8T7Rm5UlZXd&si=iYsFnDpsGOwgL_xG



لو عندك سؤال او طلب لشرح اكتب ف التعليقات 👇
36🔥6👍41❤‍🔥1💘1
25❤‍🔥2👨‍💻21🔥1😍1🏆1💘1
بروتوكول HTTPS بالتفصيل


الأول خلينا نتكلم عن وظيفة البروتوكول ده.
كلمة HTTPS هي اختصار لـ Hypertext Transfer Protocol Secure واللي معناها "بروتوكول نقل النص التشعبي الآمن". وظيفة البروتوكول ده هو إنه ينقل المعلومات بينك وبين السيرفر بأمان.

تخيل إنك قاعد في كافيه وعايز توصل رسالة سرية لصاحبك اللي في آخر القاعة. بس المشكلة إن فيه ناس قاعدة في النص ممكن تسمع الكلام أو تشوشر على كلامك وتوصل لصاحبك كلام مختلف. ودي كانت مشكلة بروتوكول HTTP.

تعال بقى نضرب HTTP ده شوية عشان يتربى ويوصل الكلام صح. لقيناه فجأة بقى HTTPS وبيشفر البيانات بينك وبين صاحبك، ولو حد سمع الرسالة مش هيفهم منها حاجة، ولو حد حاول يغير النص اللي مش مفهوم ده، بروتوكول HTTPS هيعرف ومش هيوصل الرسالة.

التحول من HTTP لـ HTTPS حصل بسبب استخدام تقنية اسمها SSL/TLS (اختصار لـ Secure Sockets Layer / Transport Layer Security). دي اللي بتقوم بعملية التشفير والتحقق من الهوية، وبتضمن إن البيانات تفضل سليمة بين الطرفين.

تعالى نتعمق شوية جوا.
دلوقتي أنت فتحت المتصفح بتاعك وهدفك تدخل تذاكر من موقع
https://www.hiddenlockteam.com.
المتصفح بيحاول يوصل للسيرفر اللي عليه الموقع، والسيرفر بيرد عليه بشهادة الـ SSL/TLS، والشهادة دي جواها مفتاح تشفير بنقول عليه المفتاح العام (والسيرفر بيحتفظ بالمفتاح الخاص المسؤول عن فك التشفير).

بعد كده المتصفح بيتأكد من الشهادة دي ويشوف إذا كانت صالحة وصادرة من جهة إصدار شهادات موثوقة ولا لا (الجهات الموثوقة دي زي GoDaddy، وDigiCert، وComodo، وما إلى ذلك).

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

شوية ملاحظات:
1- لو شهادة SSL/TLS اللي السيرفر بعتها غير صالحة أو الموقع مش موثوق، المتصفح بيعرض رسالة تحذير للمستخدم.
2- شهادة SSL/TLS زمان كان اسمها SSL فقط، بس كانت شهادة فاشلة ومليانة ثغرات، وTLS ده التحديث بتاعها اللي حل كل المشاكل بتاعتها، ودلوقتي بقى بيطلق عليها SSL/TLS
🔥26👍1312👌21🏆1💘1
😂😂
🤣107😁6👍5🤗43🔥1🤩1🏆1🤝1💘1
قولولي التخصصات اللي عاوزين ليها Roadmap 👇
❤‍🔥1332🔥2👍1
البوست ده من البشمهندس ابراهيم حجازي و ده اللينك بتاعه
https://www.facebook.com/share/p/1AzXzmE5WX/


إزاي تبدأ في مجال أمن المعلومات؟

أول خطوة هي انك تفهم الوظائف المختلفة في مجال أمن المعلومات عشان تقدر تحدد انت عايز تتخصص في إيه منها.

ده فيديو عملته بشرح فيه الوظائف المختلفه في مجال أمن المعلومات وإيه الكورسات اللي محتاجها عشان تبدأ فيها:
https://www.youtube.com/watch?v=fzkHCqCJ0as

بعد ما تفهم الوظائف المختلفة, دي roadmap مفصلة لتلات مجالات في أمن المعلومات (Red teaming, Pentesting and bug hunting) تمشي عليها من البداية لحد ما توصل لمستوي احترافي ان شاء الله:
https://www.youtube.com/watch?v=f3hP49LGoik&list=PLv7cogHXoVhVqQyou7hWWpUHwWZEcMR2x&index=5

وده الكورس اللي بشرح فيه مجال ال penetration testing واكتشاف الثغرات بالتفصيل:
https://www.youtube.com/watch?v=BjfCWSFmIFI&list=PLv7cogHXoVhXvHPzIl1dWtBiYUAL8baHj

وفي الفيديو ده هتلاقي نصائح لإزاي تجهز للإنترفيو و ايه الأسئلة اللي بتتسأل في مجالات ال Penetration testing, Malware analysis and SOC:
https://www.youtube.com/watch?v=4tAN5SpAj_g&list=PLv7cogHXoVhVqQyou7hWWpUHwWZEcMR2x

ولو عايز تدور علي وظيفة بره مصر, فده فيديو اتكلمت فيه مع مهندسين أمن معلومات من شركات عالمية زي Facebook, Deloitte, Visa وغيرها في دول مختلفة عن ازاي حصلو علي وظائفهم في الشركات دي وايه أسهل طريقة تقدر تلاقي وظيفة بره مصر في مجال أمن المعلومات:
https://www.youtube.com/watch?v=Oo0QTeV6WaY&list=PLv7cogHXoVhVqQyou7hWWpUHwWZEcMR2x&index=6

وهنا جمعتلكم لسته بمعظم شركات السكيورتي فمصر وصفحاتهم علي الفيس بوك ولينكد ان، فتابعهم عشان لما يعلنو عن الايفنتات والتدريب والوظايف:

https://www.facebook.com/Zigoo.eg/posts/pfbid028VwVQt7tSBDxFTYiJLxa3jxMVJwrFeyau4u8nUmNGhsfkVAcenkrBFttV1QdGztfl

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

ولما نتكلم عن البرمجة فأفضل حد بيشرح بالعربي وعامل شروحات مفصلة لأكتر من لغة هو أسامة محمد. تقدر تتابعه علي صفحته هنا
https://www.facebook.com/OsElzero

أكتر سؤال بتسأله, اتعلم برمجة لغاية فين؟
لغاية ما تبقي قادر لوحدك تبرمج 5 مواقع بقاعدة بيانات وبصفحات مختلفة زي الصفحة الرئيسية للموقع وصفحة تسجيل في الموقع signup وصفحة تسجيل دخول وصفحة اضافة وتعديل اخبار وصفحة بحث في الاخبار وكام صفحة لمدير الموقع وهكذا. واعمل ده بافكار مختلفة زي موقع لادارة المخازن وموقع لادارة صيدلية الخ. لما تخلصهم انت كده مستواك كافي انك تدخل أمن المعلومات وهتتعلمه اسرع بكتير لانك بتعلمك للبرمجة قطعت مسافة كبيرة في أمن المعلومات نظرا لاعتمادها علي البرمجة.
أختار انهي لغة برمجة؟ اقرا عنهم واختار اللي لقيتها أسهل بالنسبالك. ولو دورت كتير ومش عارف تختار ايه, فتوكل علي الله واختار Python

رجاء, متفكرش كتير ومتسوفش ومتعملش خطط, ابدأ علطووول وكل حاجة هتوضح معاك في الطريق :D

ولو عطلت في حاجة او عندك أي سؤال فتقدر تنضم لينا في الجروب اللي بيضم أكبر عدد من المحترفين العرب في مجال أمن المعلومات اللي هيساعدوك ويجاوبو علي أسالتك:
https://www.facebook.com/groups/pentesting4arabs/

ولا تنسوني من دعائكم ولكم بالمثل ان شاء الله
38👍11❤‍🔥62💘2🔥1
OneCube
البوست ده من البشمهندس ابراهيم حجازي و ده اللينك بتاعه https://www.facebook.com/share/p/1AzXzmE5WX/ إزاي تبدأ في مجال أمن المعلومات؟ أول خطوة هي انك تفهم الوظائف المختلفة في مجال أمن المعلومات عشان تقدر تحدد انت عايز تتخصص في إيه منها. ده فيديو عملته…
مهم تشوف البوست ده و تشوف الفديوهات لو مهتم بتخصص من دول
Red teaming
Pentesting
Bug hunting
Malware analysis
SOC

لو مش عارف عاوز تخصص ايه هو بيتكلم عن ده برضو ف فديو
161❤‍🔥1🔥1👌1💘1
OneCube pinned «البوست ده من البشمهندس ابراهيم حجازي و ده اللينك بتاعه https://www.facebook.com/share/p/1AzXzmE5WX/ إزاي تبدأ في مجال أمن المعلومات؟ أول خطوة هي انك تفهم الوظائف المختلفة في مجال أمن المعلومات عشان تقدر تحدد انت عايز تتخصص في إيه منها. ده فيديو عملته…»
يعني إيه URL؟


الـ URL ده زي العنوان اللي بتكتبه عشان تبعت جواب.
مثلا معانا اللينك ده

http://admin:password@example.com:80/dashboard.php?login=true#top

تعال نشرح اللينك ده براحة:

Scheme (http://): ده زي ما تقول طريقة التوصيل... بالعربية ولا بالدليفري.
User Info (admin:password@): لو الموقع عنده "بواب" بيطلب باسورد، ده الكود اللي هتقدمه عشان تعدي.
Host (
example.com): عنوان البيت اللي عايز تزوره.
Port (:80): دي شقة كام؟ لو مش محدد، غالبًا هي الشقة الأرضي (80).
Path (/dashboard.php): أهو ده المكان اللي عايز توصله جوة البيت، زي المطبخ بالضبط.
Query String (?login=true): لو عايز تسأل عن حاجة مخصوصة.
Fragments (
#top): الجزء اللي عايز تبدأ منه، زي ما تدخل وتقول: "فين الكرسي بتاعي؟".


تدفق HTTP:

أول ما تكتب عنوان الموقع في المتصفح، ده اللي بيحصل:
1. المتصفح يسأل: "يا DNS، فين عنوان البيت بتاع الموقع؟".
2. الـ DNS يقول: "استنى، ده عنوانه
93.184.215.14"
3. المتصفح يروح يخبط على الباب ويقول: "لو سمحت، أنا عايز الصفحة الرئيسية".
4. الموقع يرد: "خدها يا معلم، وعليها بوسة كود 200 OK!"

ملحوظة: لو لقيت كود "503"، ده معناه إن الخادم في إجازة وبيقولك "تعالى بكرة".


أداة cURL:
لو عايز تبعت طلبات للمواقع من غير دوشة المتصفح، عندك أداة اسمها cURL.
تستخدم cURL إزاي؟
لو عايز تشوف الموقع في شكله الخام:

$ curl http://testphp.vulnweb.com

ده زي ما تكون بتطلب أكل وتاخده على السريع من غير ديكور. مش هتشوف الصور ولا الألوان... بس كل حاجة أصلية.

لو عايز تحفظ الصفحة عندك:


$ curl -O http://testphp.vulnweb.com/index.html

ده كأنك بتاخد الأكل "تيك أواي" وتحطه في كيس.

لو عايز تحفظ الصفحة عندك من غير ما تظهر النتيجة:

$ curl -s -O http://testphp.vulnweb.com/index.html

هنا بقى cURL يقولك: "ماشي يا باشا، أنا هشتغل في هدوء."

لو عايز تعرف كل الخيارات:

$ curl -h


لحد دلوقتي كنا بنتعامل مع بروتوكول http في الأمثلة اللي فاتت.
دلوقتي ندخل على بروتوكول https.
لما بتستخدم أداة curl على بروتوكول https هو تلقائيًا بيعمل المصافحة الآمنة (SSL Handshake) وتشفير وفك تشفير البيانات. بس طبعًا ده مش هيغير أي حاجة من طريقة الاستخدام عن بروتوكول http وتقدر تسحب الصفحة بالأمر ده برضو:

$ curl https://example.com

بس لو انت دلوقتي عاوز تخترق موقع وجيت تفتحه ولقيت المتصفح بيقولك إن الشهادة غير صالحة وما رضيش يفتحلك الموقع، دي هتكون مشكلة.
بس بسيطة، حلها هو ده:

$ curl -k https://example.com


كده هيتم تنفيذ الطلب بنجاح، وهتظهر النتيجة زي كده:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
...SNIP...

كل اللي عملته هنا هو إني تخطيت التحقق من أمان الشهادة باستخدام الخيار -k.
123👍4❤‍🔥2🔥21😍1🏆1🫡1💘1
19😁4👍3🔥21❤‍🔥1💘1
طلبات واستجابات HTTP


لما بنفتح موقع على النت، فيه حاجة بتحصل في الخلفية اسمها "طلبات واستجابات HTTP". ببساطة، متصفحك (أو أداة زي cURL) هو اللي بيبعت طلب للخادم (Server) عشان يجيبلك الصفحة أو الحاجة اللي عايزها.

الطلب (Request)
الطلب ده بيكون عبارة عن شوية معلومات:
1. الطريقة (Method): بتحدد نوع العملية زي GET (عشان تجيب بيانات) أو POST (لما تبعت بيانات).
2. المسار (Path): هو العنوان اللي عايز توصل له على الموقع، زي
/users/login.html.
3. الإصدار (Version): زي HTTP/1.1 (ده نوع البروتوكول اللي شغال بيه الطلب).

الرؤوس (Headers) بتكون بيانات إضافية زي User-Agent اللي بيقول للسيرفر نوع الجهاز أو البرنامج اللي بتستخدمه. وفي الآخر ممكن يكون فيه بيانات زي لو كنت بتبعت فورمة (Form) فيها معلومات.

الاستجابة (Response)
السيرفر لما يستلم طلبك، بيرد عليك بحاجة اسمها "Response".
- أول حاجة بيقولك حالة الطلب بكود زي 200 OK (يعني نجح) أو 401 Unauthorized (يعني مرفوض).
- بعد كده بيبعت بيانات زي Date (تاريخ الاستجابة) و
Content-Type (نوع البيانات المرسلة).
- وأخيرًا، ممكن تلاقي المحتوى نفسه زي صفحة HTML أو JSON (اللي هو بيانات).

---

استخدام cURL في انك تعرض الطلب و الاستجابه اللي بتبعتهم و تستلمهم من الموقع.

curl example.com -v

هتلاقي تفاصيل الطلب والاستجابة بالكامل. الطلب ممكن تلاقي فيه:

GET / HTTP/1.1 (الطلب).  

والاستجابة فيها:

401 Unauthorized (مش مسموح).  


لو عايز تفاصيل أكتر، استخدم -vvv بدل -v.
التفاصيل دي هتظهرلك حتي التعامل مع شهاده ال ssl/tls.

ده مثال لطلب المتصفح او الاداه بتبعته عشان تجيب الموقع.


GET / HTTP/2
Host: example.com
User-Agent: curl/8.9.1
Accept: */*

Request completely sent off
TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):

ده مثال للاستجابه اللي بتستقبلها.

HTTP/2 200 
age: 324568
cache-control: max-age=604800
content-type: text/html; charset=UTF-8
date: Sat, 04 Jan 2025 19:17:30 GMT
etag: "3147526947+gzip+ident"
expires: Sat, 11 Jan 2025 19:17:30 GMT
last-modified: Thu, 17 Oct 2019 07:18:26 GMT
server: ECAcc (bsb/27BB)
vary: Accept-Encoding
x-cache: HIT
content-length: 1256

<!doctype html>
<html>
<head>
<title>Example Domain</title>

<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
.............

طبعا ده مش الرد كله انا حطيت جزء بس عشان البوست ميبقاش طويل.

ملحوظه: لما تفتح موقع زي http://example.com بدل ما يكون https://example.com، المفروض الموقع يحولك تلقائيًا للنسخة الآمنة باستخدام HTTPS (لو محولش علي https ف دي تبقي ثغره ف الموقع اسمها Lack of HTTP Strict Transport Security - HSTS).
❤‍🔥178👍4👏4🔥1😍1💯1💘1
اللي مهتم بمجال DevOps دي Roadmap ليكم
https://github.com/mtahle/DevOps-Foundation-Roadmap

و ده جروب في ناس كتير شاطره ف المجال هتفيدكم جدا
https://t.me/aSysAdmins
8👍8❤‍🔥5🔥1🏆1💘1
شرح ال HTTP Headers


الـ HTTP Headers دي جزء مهم من عملية التواصل بين العميل (اللي هو المتصفح) والسيرفر (اللي هو الخادم). الـ Headers دي بتنقل معلومات بين الطرفين. في Headers بتكون خاصة بالطلبات أو الردود، وفيه كمان Headers مشتركة بين الطلبات والردود.

أنواع الـ HTTP Headers:

1. General Headers (الهيدر العامة):
دي بتكون موجودة في الطلبات والردود، ومش بتخص المحتوى اللي بتبعت أو بتستقبل، ولكن بتوصف الرسالة نفسها. مثال:
- Date: بيحتفظ بوقت وتاريخ إرسال الرسالة.
- Connection: بتحدد إذا كان الاتصال هيبقى مفتوح بعد ما الرسالة تخلص ولا لأ.

2. Entity Headers (الهيدر الخاصة بالمحتوى):
بتوصف نوع المحتوى اللي تم نقله في الرسالة، يعني مثلاً لو بعت صورة أو ملف PDF. ممكن تشوفها في الردود أو الطلبات زي:
- Content-Type: بتوضح نوع المحتوى زي "text/html" أو "application/pdf".
- Content-Length: بتحدد حجم المحتوى اللي تم نقله.
- Content-Encoding: بتحدد إذا كان المحتوى مضغوط ولا لأ (زي gzip).

3. Request Headers (هيدر الطلب):
دي هي الـ Headers اللي العميل (المتصفح) بيبعتها مع الطلب علشان توضح تفاصيل عن الطلب. زي:
- Host: بتحدد اسم الموقع أو الـ IP اللي العميل عايز يتواصل معاه.
- User-Agent: بتوضح معلومات عن المتصفح والـ OS اللي العميل بيستخدمهم.
- Cookie: بيبعت الـ Cookies مع الطلب علشان السيرفر يعرف العميل ده مين.

4. Response Headers (هيدر الرد):
دي الـ Headers اللي السيرفر بيرجعها مع الرد على العميل. زي:
- Server: بيقول إيه نوع السيرفر اللي رد.
- Set-Cookie: بيحدد الـ Cookies اللي لازم يخزنها العميل.
- WWW-Authenticate: لو الرد بيطلب مصادقة (Authentication).

5. Security Headers (هيدر الأمان):
في بعض الـ Headers دي اللي بتساعد في تأمين الاتصال والحد من الهجمات. زي:
- Content-Security-Policy: بيحدد السياسات الخاصة بالحماية، زي مثلاً إيه السكربتات المسموح ليها تشتغل على الصفحة.
- Strict-Transport-Security: بيجبر المتصفح يستخدم HTTPS بدل HTTP علشان تأمين البيانات.

في الجزء اللي فات شفنا إزاي باستخدام العلامة
-v مع cURL نقدر نعرف تفاصيل كاملة عن طلب واستجابة الـ HTTP. لكن لو عاوزين نشوف رؤوس الاستجابة بس (Headers)، ممكن نستخدم العلامة -I اللي بتعمل طلب نوعه HEAD وبتعرض رؤوس الاستجابة فقط. ولو عايزين نشوف الرؤوس مع جسم الاستجابة (زي الـ HTML) ممكن نستخدم العلامة -i. الفرق إن -I بيبعت طلب HEAD بس، لكن -i بيعرض الرؤوس مع أي طلب بنحدده.

مثال: استخدام علامة -I:

$ curl -I https://example.com

Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/605.1.15 (KHTML, like Gecko)
Cookie: cookie1=298zf09hf012fh2; cookie2=u32t4o3tb3gg4
Accept: text/plain
Referer: https://example.com/
Authorization: BASIC cGFzc3dvcmQK

Date: Sun, 06 Aug 2020 08:49:37 GMT
Connection: keep-alive
Content-Length: 26012
Content-Type: text/html; charset=ISO-8859-4
Content-Encoding: gzip
Server: Apache/2.2.14 (Win32)
Set-Cookie: name1=value1,name2=value2; Expires=Wed, 09 Jun 2021 10:18:14 GMT
WWW-Authenticate: BASIC realm="localhost"
Content-Security-Policy: script-src 'self'
Strict-Transport-Security: max-age=31536000
Referrer-Policy: origin


راجع الرؤوس اللي فوق، وحاول تفتكر دور كل واحد منها.

تعيين رؤوس الطلب (Request Headers)
اداة cURL بتسمح لنا نحدد رؤوس الطلب باستخدام العلامة -H. لكن فيه بعض الرؤوس ليها علامات مخصصة.
مثلاً، لو عايزين نغير قيمة User-Agent ممكن نستخدم العلامة -A كالتالي:

$ curl https://www.inlanefreight.com -A 'Mozilla/5.0'

ده هيغير رأس User-Agent للقيمة اللي اخترناها.

جرب تستخدم العلامتين -I أو -v مع المثال ده، وتأكد إن رأس User-Agent اتغير باستخدام -A.

بكده هتقدر تحلل أي طلب HTTP أو استجابة مباشرة من المتصفح!
🔥116👍6❤‍🔥31😍1💘1
شرح HTTP Methods and Codes



بروتوكول HTTP بيشتغل بطرق مختلفة عشان نقدر نوصل للمصادر أو البيانات اللي محتاجينها من السيرفر. الطرق دي بتسمح للمتصفح (زي جوجل كروم أو فايرفوكس) إنه يبعت معلومات أو ملفات للسيرفر، وكمان بتحدد للسيرفر إزاي يتعامل مع الطلب اللي بنبعته ويرد علينا إزاي.

إحنا شفنا شوية طرق مختلفة في طلبات HTTP لما جربناها قبل كده. لما بنستخدم cURL مع الخيار -v عشان نشوف تفاصيل الطلب بالكامل، بنلاقي السطر الأول فيه نوع الطريقة اللي استخدمناها (زي GET / HTTP/1.1). في أدوات المطور الموجودة في المتصفح، بنشوف الطريقة دي في عمود اسمه "Method". كمان في رد السيرفر، بنلاقي أكواد استجابة HTTP اللي بتقولنا حالة الطلب اللي بعتناه إذا كان ناجح أو فيه مشكلة.


طرق الطلبات (Request Methods)

في HTTP، فيه طرق مختلفة بنستخدمها عشان نطلب بيانات من السيرفر أو نبعتله بيانات. دول شوية طرق مشهورة:

طريقة GET: بنطلب حاجة معينة من السيرفر، زي لما تفتح صفحة ويب. ممكن كمان نبعت بيانات إضافية للسيرفر عن طريق الحاجات اللي بنكتبها بعد علامة الاستفهام في الرابط (زي ?param=value).

طريقة POST: بنبعت بيانات للسيرفر، زي لما تكتب في فورم تسجيل الدخول أو ترفع صورة. البيانات دي بتتبعت في جسم الطلب (Body) بعد الترويسات.

طريقة HEAD: بنطلب من السيرفر يرد علينا بنفس الترويسات اللي كان هيبعتها مع طلب GET، بس من غير ما يبعث جسم الطلب نفسه. مفيدة لو عايز تعرف حجم الملف قبل ما تنزله.

طريقة PUT: بنستخدمها عشان نعمل مورد جديد على السيرفر. لو استخدمناها من غير حماية كويسة، ممكن حد يرفع حاجات مضرة.

طريقة DELETE: زي ما الاسم بيقول، بنحذف مورد موجود على السيرفر. لو ما تأمنتش، ممكن تتسبب في مشاكل كبيرة زي حذف ملفات مهمة وتعطيل السيرفر (DoS).

طريقة OPTIONS: بنسأل السيرفر عن الطرق اللي بيدعمها، يعني بنطلب معلومات عنه.

طريقة PATCH: بنعمل تعديلات بسيطة على حاجة موجودة بدل ما نغيرها بالكامل.

القائمة دي فيها الطرق الأكثر شيوعًا، لكن فيه طرق تانية ممكن تكون متاحة حسب إعدادات السيرفر والتطبيق اللي بتستخدمه.

معلومة مهمة: معظم مواقع الويب بتستخدم طريقتين أساسيين هما GET وPOST. لو الموقع بيشتغل مع REST APIs، هيحتاج كمان PUT وDELETE عشان يقدر يحدث البيانات أو يحذفها من نقاط النهاية (endpoints).


أكواد الاستجابة (Response Codes)

أكواد حالة HTTP بتوضحلك إيه اللي حصل مع الطلب اللي بعتته للسيرفر. السيرفر ممكن يرد بخمس أنواع من الأكواد:

1xx: معلومات بس، ومش بتأثر على معالجة الطلب.
2xx: الطلب نجح تمام.
3xx: السيرفر بيعمل إعادة توجيه لعنوان تاني.
4xx: فيه مشكلة في الطلب من ناحية العميل، زي طلب حاجة مش موجودة أو تنسيق غلط.
5xx: فيه مشكلة في السيرفر نفسه.


أمثلة على الأكواد دي:

200 OK: الطلب نجح، والسيرفر رجع البيانات المطلوبة.
302 Found: بيحولك لعنوان تاني، زي لما تدخل على صفحة وتتنقل تلقائيًا للوحة التحكم بعد تسجيل الدخول.
400 Bad Request: الطلب فيه خطأ، زي طلب ناقص أو مش مكتوب بطريقة صحيحة.
403 Forbidden: معندكش صلاحية تشوف المورد ده، أو السيرفر اكتشف حاجة مشبوهة في المدخلات اللي بعتها.
404 Not Found: المورد اللي بتدور عليه مش موجود على السيرفر.
500 Internal Server Error: السيرفر حصل فيه مشكلة ومقدرش يتعامل مع الطلب.


فيه أكواد كتيرة تانية، وفيه خوادم زي Cloudflare وAWS بتستخدم أكواد خاصة بيها كمان. لو عايز تعرف اكواد اكتر، ممكن تشوف ده: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status .
❤‍🔥12👍61🔥1👌1😍1🏆1