مع تطور الهجمات السيبرانيه صار لازم على المتصفحات توخي الحذر وجعل المستخدم في بقعه امنه قدر المستطاع، ولذلك تم إنشاء مفهوم الـ Same-origin Policy عند المتصفحات وهي ميكانيزما شديدة الحرص تحد من تواصل الموقع ومكوناته والسكربتات الي فيه مع اي موقع اخر
فمثلاً لو كان عندنا الموقع
store.company.com
فف هو مثل ما نشوف بالجدول ادناه:
- ممنوع من التواصل مع نفسه عن طريق بروتوكول مختلف يعني لو شغال على ال https ما يتواصل مع الـ http
⁃ ممنوع يتواصل مع بورت مختلف
⁃ ممنوع يتواصل مع سب دومين مختلف
store.company.com
فف هو مثل ما نشوف بالجدول ادناه:
- ممنوع من التواصل مع نفسه عن طريق بروتوكول مختلف يعني لو شغال على ال https ما يتواصل مع الـ http
⁃ ممنوع يتواصل مع بورت مختلف
⁃ ممنوع يتواصل مع سب دومين مختلف
وهنا نشأت مشكلة جديده للمبرمجين، الا وهي في الوضع هذا ما يقدر المبرمج انه يحط API ب سب دومين مختلف ويتواصل معاه، مع ان هذي الطريقة هي طريقة طبيعيه مستعمله في الايام هذي ولكن كيف كذا ؟ كيف يتواصلون والـ SOP يمنعهم
هنا احب اقولك ان ثورة المبرمجين الوهاجه انتصرت وتم انشاء مفهوم الـ Cross Origin Resource Sharing والي هو عباره عن ميكانيزما تخلي السيرفر يسمح بعرض مصادر ( صفحات ) السيرفر لمن هم خارج الـ origin (خارج نطاق الدومين)
حنا في هذا الثريد نبي نركز على الهيدرين الي محددين بالازرق لانهم هم اساس البلا والصلاح
الهيدير الاول اذا كان true فف هو يقول للبروازر خذ الريسبونس مع الـ Cookies والـ authorization headers
الهيدير الاول اذا كان true فف هو يقول للبروازر خذ الريسبونس مع الـ Cookies والـ authorization headers
الهيدير الثاني السيرفر يحط فيه الدومينات الي مسموح لهم اخذ الريسبونس / مسموح لهم ان يعدون من الـ SOP
ودي اني اوقف هنا واسوي ريكاب للي صار قبل اخش بالعميق، الحين فيه بالمتصفحات طبقة تمثل حماية الا وهي الـ SOP، هذي الطبقه جداً restrected فف عشان المبرمجين ياخذون مساحة من الحريه لتصميم برامج كبيره ولها اكثر من دومين او سب دومين صار فيه شي اسمه CORS يساعدهم في ذلك
عشان نشوف طبقة الحماية مرئا المجاز لنفترض انك حصلت موقع عليه ثغره CSRF وعشان تنفذ هذي الثغره وتحصد اكبر ضرر للموقع انت تحتاج تستغلها بخطوتين خطوه تخلي المتصفح يقرا معلومات من الموقع، والخطوه الثانيه انك تستغل المعلومات هذي مع الثغره
لو الموقع المصاب مو حاط موقعك الي بتستضيف فيه الاستغلال ، من الدومينات الي مسموح باخذ الريسبونس عن طريق ال CORS فف غالباً استغلالك ابو خطوتين ما بيضبط
حلو ؟ حلو
حلو ؟ حلو
وهنا ودي انوه لنقطه تخص لكل مهتمين بالامن السيبراني كلهم، الحين لمن تشوف موقع يرد عليك بالهيدر هذا وبالقيمه هذي
Allow-Control-Allow-Origin: *
واذا مافيه Access-Control-Allow-Credentials: true
فف هذي ما يعني ان فيه ثغرة CORS misconfiguration
Allow-Control-Allow-Origin: *
واذا مافيه Access-Control-Allow-Credentials: true
فف هذي ما يعني ان فيه ثغرة CORS misconfiguration
لان هذا شي طبيعي وفقاً لكلام الـ MDN
ووفقاً لنفسهم MDN ال * تعتبر ان كل الدومينات مسموح لها تقرا الريسبونس بشرط ان الـ Allow Credentials مو موجوده
قف مع نفسك قليلا وفكر فيها، بعض الاحيان يكون مواقع مافيها معلومات حساسه فعادي يقراها الـ js وغير الـ js من اي مكان
ووفقاً لنفسهم MDN ال * تعتبر ان كل الدومينات مسموح لها تقرا الريسبونس بشرط ان الـ Allow Credentials مو موجوده
قف مع نفسك قليلا وفكر فيها، بعض الاحيان يكون مواقع مافيها معلومات حساسه فعادي يقراها الـ js وغير الـ js من اي مكان
ولكن غالباً اذا فيه هيدر
Access-Control-Allow-Credentials: true
فالموقع فيه تسجيل دخول وكوكيز وحركات authentication فف مو من المنطقي تخلي كل المواقع تقراها مع الكوكيز لانك كذا هدمت صرح مفهوم الـ SOP
Access-Control-Allow-Credentials: true
فالموقع فيه تسجيل دخول وكوكيز وحركات authentication فف مو من المنطقي تخلي كل المواقع تقراها مع الكوكيز لانك كذا هدمت صرح مفهوم الـ SOP
طييب لنفرض اني مبرمج وابي اسمح لاكثر من دومين بانهم ياخذون الريسبونس وش السواه ؟
في الـ CORS انت مسموح لك بس تحط دومين واحد داخل قيمة الهيدر
Allow-Control-Allow-Origin:
Allow-Control-Allow-Origin:
بس هذي الطريقة ما تنفع مع المبرمجين كون الطريقة منطقياً نايمه
فف غالباً يسوون نفس اخونا في الانسانيه ادناه؛
فف غالباً يسوون نفس اخونا في الانسانيه ادناه؛
فف هنا لو تسوي موقع فيه كود js يسحب الكوكيز من الموقع المصاب، بتطلع الريكويزت منك مع الـ origin header الي قيمته بتكون اسم موقعك، السيرفر بيخلي قيمة الهيدر Allow-Control-Allow-Origin: ديناميكياً باسم موقعك وموجود هيدر
الـ Access-Control-Allow-Credentials بقيمة true
الـ Access-Control-Allow-Credentials بقيمة true
والى هنا احس هليت معلومات كثيره لعلي في semi-ثريد قادم اشرح الـ simple وال preflight requests
جاري تحميل الاقتراحات...