Cross-Origin Resource Sharing (CORS) হলো একটি ব্রাউজার-ভিত্তিক সিকিউরিটি মেকানিজম বা প্রোটোকল, যা একটি ওয়েবসাইটের (ডোমেইন) স্ক্রিপ্টকে অন্য একটি ভিন্ন ডোমেইনের রিসোর্স বা এপিআই (API) অ্যাক্সেস করার অনুমতি দেয়।
এটি ওয়েব অ্যাপ্লিকেশন সিকিউরিটি ও ব্রাউজার রিসোর্স অ্যাক্সেসে যেভাবে প্রভাব ফেলে:
• নিরাপত্তা রক্ষা (Same-Origin Policy রক্ষা): ব্রাউজারের ডিফল্ট নিয়ম অনুযায়ী এক ডোমেইন থেকে অন্য ডোমেইনের ডেটা রিড করা যায় না (যাকে Same-Origin Policy বলে)। CORS সার্ভারকে এই ক্ষমতা দেয় যাতে সে নির্দিষ্ট করে দিতে পারে কোন কোন বিশ্বস্ত ডোমেইন তার ডেটা অ্যাক্সেস করতে পারবে, ফলে ক্ষতিকারক সাইটগুলো সহজেই সংবেদনশীল ডেটা চুরি করতে পারে না।
• ক্রস-ডোমেইন রিসোর্স শেয়ারিং: ব্রাউজারে থাকা ফ্রন্টএন্ড অ্যাপ্লিকেশন (যেমন: example.com) যাতে নিরাপদে অন্য কোনো সার্ভারে (যেমন: ://example.com) থাকা রিসোর্স বা এপিআই-তে রিকোয়েস্ট পাঠাতে এবং রেসপন্স গ্রহণ করতে পারে, তা নিয়ন্ত্রণ করে।
• প্রি-ফ্লাইট রিকোয়েস্ট (Preflight Request): কোনো ঝুঁকিপূর্ণ বা কাস্টম রিকোয়েস্ট (যেমন: PUT/DELETE বা কাস্টম হেডার) পাঠানোর আগে ব্রাউজার স্বয়ংক্রিয়ভাবে একটি OPTIONS রিকোয়েস্ট পাঠায়। সার্ভার অনুমতি দিলেই কেবল মূল রিকোয়েস্টটি ব্রাউজার থেকে পাঠানো হয়, যা ব্যাকএন্ডের নিরাপত্তা নিশ্চিত করে।
• অননুমোদিত অ্যাক্সেস রোধ: CORS যদি সঠিকভাবে কনফিগার করা না থাকে (যেমন: Access-Control-Allow-Origin: * ব্যবহার করলে), তবে যেকোনো মেলিশিয়াস ওয়েবসাইট ব্যবহারকারীর ব্রাউজারকে কাজে লাগিয়ে ব্যাকএন্ড সার্ভার থেকে ডেটা চুরি করতে পারে (CORS Misconfiguration Vulnerability)।