فرید شریعتی
فرید شریعتی
خواندن ۲ دقیقه·۳ سال پیش

بالاخره CORS چیست ؟

چند وقتی بود که برام سوال شده بود تا بدونم cors به چه معناست و برای فهمیدنش سرچ کردم تا متوجه این موضوع بشم ، ولی خب خیلی جاها درست توضیح نداده بودن یا حداقل برای من جا نمیوفتاد ...

بالاخره بعد از وقت گذاشتن بسیار متوجه شدم که cors چیه و میخوام خیلی ساده و کوتاه بهتون معرفیش کنم که گیج نشین و بتونین یه درک کلی ازش به دست بیارین .


در حالت معمولی یک مرورگر فقط میتونه به وب سایتی که در حال حاضر داره نمایش میده درخواست ارسال بکنه و مثلا وقتی وب سایت الف باز شده مرورگر نمیتونه بره به وب سایت ب درخواست بده خب کار منطقی ای هم نیست که همینجوری مروگر بتونه به همه جا درخواست بده از هرجا که دلش خواست ! و اگر از وب سایت الف به وب سایت ب درخواست بده اجازه بهش نمیده و به این سیاست میگیم Same Origin Policy .

اما خب به هر حال وقتی دارم یک وب اپلیکیشن رو توسعه میدیم احتمالش زیاده که نیاز پیدا کنیم به سرور های دیگه درخواست بدیم و برای عملی کردن این درخواست ها از مکانیزم CORS استفاده میکنیم .

این CORS یا Cross-Origin Resource Sharing مکانیزمیه که این امکان رو به وب سرور ها میده تا بتونن منابع خودشون رو در اختیار بقیه ی وب سایت ها بذاره و اونا هم بتونن استفاده کنن .

برای فعال کردن این ویژگی کافیه که در ریسپانس یک هدر به شکل زیر ست کنیم :

Access-Control-Allow-Origin: *

البته این برای وقتیه که ما میخوایم api عمومی یا همون public داشته باشیم که همه بتونن بهش دسترسی داشته باشن ، و اون علامت * این قابلیت رو میده که از طریق همه ی دامنه های دیگه این دسترسی وجود داشته باشه و خب اگر ما نخوایم همه قابلیت دسترسی رو داشته باشن و فقط جاهایی که مد نظرمون هست این قابلیت رو داشته باشن نیازه که این دسترسی رو محدود کنیم برای مثال به این شکل هدر رو ست کنیم :

Access-Control-Allow-Origin: https://test.com

در این حالت فقط وب سایت test.com میتونه از api ما استفاده کنه .

البته برای حالت مختلف نیازه هدر های دیگه ای هم ست کنیم که خب برای این بحث نیازی نمیبینم که همشونو توضیح بدم چون هدفم فقط یک مثال و معرفی بود .


و در نهایت این بحث خیلی گسترده تر از این مطلب کوتاهی هست که من نوشتم ، اما فقط خواستم ساده و کوتاه توضیح بدم که اگر کسی براش سوال شده بود و میخواست تحقیق درباره ی این مطلب رو شروع کنه ، خوندن این مطلب یکم راهش رو آسون تر کنه .


موفق و سلامت باشین ;)

برنامه نویسیcorsفرید شریعتیامنیتapi
سعی در ایجاد ثبات و فرار از سکون
شاید از این پست‌ها خوشتان بیاید