CORS
CORS: مشاركة الموارد عبر المصادر - دليل شامل للمبتدئين
مقدمة
في عالم الويب الحديث، تتواصل تطبيقات الويب مع بعضها البعض بشكل متزايد. غالبًا ما يكون هذا التواصل عبر مجالات مختلفة، وهو ما يثير تحديات أمنية. هنا يأتي دور مشاركة الموارد عبر المصادر (Cross-Origin Resource Sharing أو CORS). هذا المقال يهدف إلى شرح CORS بشكل مفصل للمبتدئين، مع التركيز على أهميته وكيفية عمله وكيفية التعامل معه في سياق تطوير الويب.
ما هو CORS؟
CORS هي آلية أمنية في متصفحات الويب تحدد ما إذا كان بإمكان تطبيق ويب من مجال واحد (أصل) الوصول إلى موارد من مجال آخر. "الأصل" هنا يُعرّف بثلاثة مكونات: بروتوكول الاتصال (مثل HTTP أو HTTPS)، اسم النطاق (مثل example.com)، و رقم المنفذ (مثل 80 أو 443). إذا اختلفت أي من هذه المكونات الثلاثة، يعتبر الطلب "عبر المصادر".
لماذا نحتاج إلى CORS؟
بدون CORS، ستكون هناك ثغرة أمنية كبيرة. تخيل أنك قمت بتسجيل الدخول إلى حسابك المصرفي على موقع ويب. إذا سمح المتصفح لأي موقع ويب آخر بإرسال طلبات إلى خادم البنك نيابة عنك، فقد يتمكن موقع ويب ضار من سرقة معلوماتك أو إجراء معاملات غير مصرح بها. CORS يمنع هذا السيناريو من خلال فرض قيود على الطلبات عبر المصادر.
كيف يعمل CORS؟
عندما يحاول تطبيق ويب إجراء طلب عبر المصادر، يقوم المتصفح بتنفيذ سلسلة من الخطوات للتحقق مما إذا كان الطلب مسموحًا به:
1. الطلب الأولي (Preflight Request): في بعض الحالات (مثل استخدام طرق HTTP غير الآمنة مثل PUT أو DELETE، أو استخدام أنواع محتوى مخصصة)، يرسل المتصفح طلبًا أوليًا باستخدام طريقة HTTP OPTIONS. يحتوي هذا الطلب على معلومات حول الطلب الفعلي الذي سيتم إرساله، مثل طريقة HTTP، ورؤوس الطلب، وأصل الطلب. 2. استجابة الخادم (Server Response): يستجيب الخادم للطلب الأولي برؤوس HTTP خاصة بـ CORS. هذه الرؤوس تخبر المتصفح ما إذا كان الطلب عبر المصادر مسموحًا به. أهم هذه الرؤوس:
* Access-Control-Allow-Origin: يحدد المجال (أو المجالات) المسموح لها بالوصول إلى المورد. يمكن أن يكون '*' للسماح لجميع المجالات (غير مستحسن للإنتاج). * Access-Control-Allow-Methods: يحدد طرق HTTP المسموح بها (مثل GET، POST، PUT، DELETE). * Access-Control-Allow-Headers: يحدد رؤوس HTTP المسموح بها في الطلب الفعلي. * Access-Control-Allow-Credentials: يحدد ما إذا كان الطلب مسموحًا به مع بيانات الاعتماد (مثل ملفات تعريف الارتباط).
3. التحقق من المتصفح (Browser Verification): يقوم المتصفح بالتحقق من رؤوس CORS التي أرسلها الخادم. إذا كانت الرؤوس تسمح بالطلب، يتم إرسال الطلب الفعلي. وإلا، يتم حظر الطلب ويعرض المتصفح خطأ.
أمثلة على سيناريوهات CORS
- سيناريو 1: طلب بسيط (Simple Request): إذا كان الطلب يستخدم طريقة HTTP GET أو HEAD أو POST، وكان نوع المحتوى محدودًا (مثل application/x-www-form-urlencoded أو multipart/form-data أو text/plain)، فإنه يعتبر "طلبًا بسيطًا". في هذه الحالة، لا يرسل المتصفح طلبًا أوليًا، بل يرسل الطلب الفعلي مباشرة.
- سيناريو 2: طلب معقد (Complex Request): إذا كان الطلب لا يفي بمعايير الطلب البسيط، فإنه يعتبر "طلبًا معقدًا". في هذه الحالة، يرسل المتصفح طلبًا أوليًا كما هو موضح أعلاه.
مثال | CORS مطلوب؟ | | |||
GET request إلى نفس المجال | لا | | POST request إلى نفس المجال | لا | | PUT request إلى مجال مختلف | نعم | | DELETE request مع رأس مخصص إلى مجال مختلف | نعم | |
التعامل مع أخطاء CORS
عندما يواجه المتصفح خطأ CORS، فإنه يعرض رسالة خطأ في وحدة التحكم (Console) في أدوات المطور (Developer Tools). أكثر الأخطاء شيوعًا هي:
- "No 'Access-Control-Allow-Origin' header is present on the response." يعني أن الخادم لم يرسل رأس Access-Control-Allow-Origin.
- "has been blocked by CORS policy." يعني أن رأس Access-Control-Allow-Origin موجود، ولكنه لا يسمح بالمجال الذي أرسل الطلب.
كيفية إصلاح أخطاء CORS:
- على جانب الخادم: تأكد من أن الخادم يرسل رؤوس CORS المناسبة. يمكنك تكوين الخادم للسماح بمجالات محددة أو السماح لجميع المجالات (باستخدام '*').
- على جانب العميل: لا يمكنك عادةً إصلاح أخطاء CORS من جانب العميل مباشرةً. الحل الوحيد هو تعديل الخادم. ومع ذلك، يمكنك استخدام وكيل عكسي (Reverse Proxy) كحل مؤقت، ولكن هذا ليس حلاً أمنيًا مثاليًا.
CORS والخيارات الثنائية
في سياق الخيارات الثنائية، قد تواجه CORS عند محاولة الوصول إلى بيانات من واجهات برمجة التطبيقات (APIs) الخاصة بمنصات تداول الخيارات الثنائية. إذا كنت تقوم بتطوير تطبيق ويب يتفاعل مع هذه الواجهات، فتأكد من أن الخادم يسمح بمجال تطبيقك في رأس Access-Control-Allow-Origin. قد تحتاج أيضًا إلى التعامل مع الطلبات الأولية (Preflight Requests) بشكل صحيح.
موارد إضافية
- HTTP
- HTTPS
- JSON
- XML
- واجهة برمجة التطبيقات (API)
- أمن الويب
- الوكيل العكسي
- مجال (Domain Name)
- بروتوكول الاتصال
- رأس HTTP
- أدوات المطور في المتصفح
استراتيجيات تداول وتحليل
- استراتيجية مارتينجال
- استراتيجية فيبوناتشي
- استراتيجية المتوسطات المتحركة
- تحليل الشموع اليابانية
- تحليل حجم التداول
- مؤشر القوة النسبية (RSI)
- مؤشر الماكد (MACD)
- بولينجر باندز
- تحليل الموجات إليوت
- التحليل الأساسي
- إدارة المخاطر
- تنويع المحفظة
- تداول الاتجاه
- تداول الاختراق
- تداول النطاق
الخلاصة
CORS هي آلية أمنية مهمة تحمي تطبيقات الويب من الهجمات عبر المصادر. فهم كيفية عمل CORS وكيفية التعامل مع أخطائه أمر ضروري لأي مطور ويب. من خلال تكوين الخادم بشكل صحيح وإرسال رؤوس CORS المناسبة، يمكنك ضمان أن تطبيقك يمكنه الوصول إلى الموارد التي يحتاجها بأمان.
ابدأ التداول الآن
سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)
انضم إلى مجتمعنا
اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين