حل مشكلة Cross-Origin Sharing في دقائق باستخدام CORS وNode.js

ما هو CORS؟ الحل النهائي لمشكلات الـ Cross-Origin في Node.js
كيف تتجنب أخطاء CORS الشائعة عند تطوير APIs باستخدام Node.js

كل ما تريد معرفتة عن Cors في NodeJs لإنشاء واجهات برمجة التطبيقات

في عالم تطوير الويب الحديث، أصبحت واجهات برمجة التطبيقات (APIs) جزءًا أساسيًا من بناء التطبيقات. ومع ذلك، عند إنشاء API باستخدام تقنيات مثل Node.js، قد تواجه مشكلة تتعلق بالأمان والوصول بين المتصفحات والمصادر المختلفة. هنا يأتي دور CORS (Cross-Origin Resource Sharing) ، وهي تقنية تُستخدم للتحكم في كيفية تبادل البيانات بين مصادر مختلفة.


في هذا المقال، سنتناول كل ما تحتاج إلى معرفته حول CORS في Node.js، بما في ذلك مفهومها، أهميتها، وكيفية استخدام مكتبة CORS لتسهيل عملية إنشاء واجهات برمجة التطبيقات.


ما هي مكتبة CORS؟

منصة برمجه CORS (مشاركة الموارد عبر المنشأ) هي آلية أمان تسمح لمواقع الويب بالوصول إلى الموارد من مواقع أخرى ، تستخدم بشكل كبير لبناء واجهات برمجة التطبيقات حتى يتفاعل backend مع ui بدون مشاكل واكثر المشاكل التي نقابلها في البرمجة الحاسوبية وهيا اختلاف ال port وهذه المكتبة تحل لنا هذه المشكلة .


ما هو المصدر (Origin)؟

المصدر هو مزيج من البروتوكول (HTTP أو HTTPS)، اسم النطاق (Domain)، والمنفذ (Port). على سبيل المثال:


http://example.com

https://api.example.com:3000


إذا حاول موقع يعمل على مصدر معين الوصول إلى مورد من مصدر آخر، فإن المتصفح يمنع هذا الطلب افتراضيًا بسبب سياسة "نفس المصدر" (Same-Origin Policy )، التي تهدف إلى حماية المستخدمين من الهجمات الضارة مثل هجمات Cross-Site Request Forgery (CSRF) .

مميزات مكتبة CORS:

  1. تحسين الأمان: تمنع CORS مواقع الويب الضارة من الوصول إلى البيانات الحساسة.
  2. تحسين قابلية الاستخدام: تسمح CORS لمواقع الويب بالعمل مع بعضها البعض بشكل أكثر سلاسة.
  3. تحسين الأداء: تقلل CORS من عدد طلبات HTTP اللازمة للوصول إلى الموارد من مواقع أخرى.

كيف تعمل مكتبة CORS؟

تستخدم مكتبة CORS  رؤوس HTTP  للتحكم في الوصول إلى الموارد.
  1. رأس Origin: يُحدد موقع الويب الذي يطلب الوصول إلى المورد.
  2. رأس Access-Control-Allow-Origin: يُحدد مواقع الويب التي يُسمح لها بالوصول إلى المورد.
  3. رأس Access-Control-Allow-Headers: يُحدد رؤوس HTTP التي يُسمح لمواقع الويب بإرسالها مع طلبات الوصول إلى المورد.
  4. رأس Access-Control-Allow-Methods: يُحدد الطرق HTTP التي يُسمح لمواقع الويب باستخدامها للوصول إلى المورد.

أهمية استخدام CORS

  • الأمان : تمنع المواقع غير المصرح بها من الوصول إلى مواردك الحساسة.
  • التحكم : تتيح لك تحديد المصادر والأساليب المسموح بها بدقة.
  • سهولة التكامل : تجعل مكتبة CORS من السهل إعداد السياسات دون الحاجة إلى كتابة كود مخصص.

كيفية استخدام مكتبة CORS في Node.js؟

1. تثبيت حزمة CORS:

npm i cors

2. استيراد حزمة CORS:
const cors = require('cors');

3. استخدام CORS مع خادم Express:
const app = express();

app.use(cors());

شكل الكود النهائي
const express = require('express');
const cors = require('cors');

const app = express();
app.use(cors());

app.get('/api/data', (req, res) => {
  res.json({ message: 'هذه بيانات من API!' });
});


const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`الخادم يعمل على المنفذ ${PORT}`);
});
CORS هي جزء لا غنى عنه عند إنشاء واجهات برمجة التطبيقات باستخدام Node.js. باستخدام مكتبة CORS، يمكنك توفير بيئة آمنة ومرنة لتطبيقاتك، مما يسمح للمطورين الآخرين بالوصول إلى خدماتك بطريقة آمنة ومنظمة. سواء كنت تقوم بإنشاء API صغيرة أو نظام معقد، فإن فهم وتطبيق CORS بشكل صحيح سيكون له تأثير كبير على نجاح مشروعك.
تعليقات