عايز تفهم يعنى أيه CORS .. وأزاى بيشتغل ؟ وليه موجود ؟!

x32x01
  • بواسطة x32x01 ||
🤭أخيرًا فهمت يعني إيه CORS!
إزاي بيشتغل؟ مين اللي بينفذه؟ وليه أصلا موجود؟
أكيد قابلت الرسالة دي قبل كده وانت بتشتغل على API أو مشروع ويب: "CORS error"

والموضوع بيبقى معصبك وانت مش فاهم هو بيعمل كده ليه!
الحوار كله بقا هقولك عليه ...

تخيل إنك داخل على bank.com (الموقع بتاع البنك بتاعك)، سجلت دخول، فالمتصفح حفظ Session Cookie 🥠
دي ببساطة ورقة تعريف، أي طلب بعد كده للبنك هيعرف إنك إنت اللي عامل Login.

بعد شوية فتحت الإيميل ... ولقيت رسالة غريبة فيها لينك… طبعًا فضولك خلاك تدوس عليه 😅، اللينك ودّاك على attack.com.
الموقع ده في الخلفية بعت طلب لـ bank.com علشان يجيب بياناتك البنكية.
الكارثة: البنك هيبعت البيانات عادي جدًا… لأنه شايف الكوكيز اللي بتقول إنك لسه داخل، فمش هيشك لحظة!

هنا بقى ظهر الـ SOP ...
المتصفحات قالت: "لأ، كده خطر".

فطلع قانون اسمه Same-Origin Policy.
معناه ببساطة:
أي طلب من موقع لموقع تاني مختلف في (البروتوكول + الدومين + البورت) هيترفض تلقائيًا
الموضوع ده حمى ناس كتير من هجمات زي CSRF… لكن! 😏
فيه مشكلة…

المشكلة: مفيش APIs بقى شغالة!
إنت كـ developer، محتاج تجيب بيانات من مواقع تانية طول الوقت (مثلاً تسحب بيانات من API عام).
SOP هنا بيقفلك الباب خالص.
وهنا ظهر موضوع الCORS

إيه هو CORS بقى؟​

لما example.com يحاول يجيب بيانات من bank.com، المتصفح بيبعت Header اسمه Origin، بيقول للبنك الطلب جاي منين.
لو البنك شايف إن example.com موقع موثوق أو البيانات اللي بتتطلب عامة، بيرد بـ Header اسمه:
Code:
Access-Control-Allow-Origin: http://example.com
أو بيحط * لو حابب يفتحه لكله
المتصفح بقى يقرر: لو الرد مناسب → يكمل الطلب ✅
لو مش مناسب → يوقفه ويطلعلك Error

طب إيه حكاية الـ Preflight؟​

في طلبات معينة (زي PUT, DELETE أو فيها Headers خاصة)، المتصفح مايبعتهاش على طول…
بيعمل حاجة اسمها Preflight Request، ودي بتكون OPTIONS request يسأل السيرفر:
"هو مسموح أعمل الطلب ده؟"

لو السيرفر وافق ورجع Headers زي:
Code:
Access-Control-Allow-Methods
Access-Control-Allow-Headers
ساعتها المتصفح يبعت الطلب الأصلي… غير كده؟ بلوك

باختصار يا سيدي
ال CORS مش أداة سيرفر… ده Policy من المتصفح.
هدفه يحميك من المواقع اللي بتحاول تسرق بياناتك.

السيرفر بتاعك لازم يكون مهيّأ إنه يتعامل معاه.
الحماية دي مش 100%، ولازم تفضل حريص وانت بتتصفح.
565656.jpg
إيه أكتر موقف CORS عطلك فيه وانت شغال؟ شاركني تجربتك تحت 👇
 
المواضيع ذات الصلة
x32x01
  • x32x01
الردود
0
المشاهدات
628
x32x01
x32x01
x32x01
الردود
1
المشاهدات
490
x32x01
x32x01
x32x01
الردود
0
المشاهدات
89
x32x01
x32x01
x32x01
الردود
0
المشاهدات
459
x32x01
x32x01
x32x01
  • x32x01
الردود
0
المشاهدات
742
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
1,772
المشاركات
1,990
أعضاء أكتب كود
382
أخر عضو
Aly.webdesigner
عودة
أعلى