CORS
CORS یا Cross-Origin Resource Sharing مکانیزمی است که اجازه می دهد یک صفحه وب منابع محدودی را از دامنه دیگری در خارج از دامنه ای که مبدا اصلی آن است، درخواست کند. با این مکانیزم یک صفحه وب می تواند آزادانه تصاویر یا منابع مختلف را در اختیار وب سرور های دیگر قرار بدهد.
مکانیزم CORS با اضافه کردن یک هدر جدید HTTP به وب سرور اجازه می دهد تا با یکسری دامنه موجود در لیست سفید و دارای مجوز اتصال برقرار کند.
به دلایل امنیتی، مرورگرها درخواست های HTTP با مبدا های متفاوت از مبدا اصلی را محدود می کنند. این بدان معنی است که یک صفحه وب فقط می تواند از همان مبدا صفحه ای که فایل از آن بارگیری شده است درخواست منابع کند، مگر اینکه پاسخ دریافتی از مبدا های دیگر شامل هدرهای CORS مناسب باشد.
مکانیزم CORS با استفاده از XMLHttpRequest L2 API به مرورگر وب اجازه ارسال درخواست های cross- domain را می دهد.
هدر های CORS :
در مکانیزم CORS هدر های مختلفی وجود دارد. این هدر ها شامل هدر های درخواست و هدرهای پاسخ می باشند:
- :Access-Control-Allow-Origin این هدر یک هدر پاسخ می باشد. به طور مثال سایتی با مبدا X قصد دریافت محتوای خاصی را از سایت مبدا Y دارد, پس از دریافت درخواست، سایت Y می تواند این هدر را به عنوان پاسخ ارسال کرده و به مرورگر بگوید که فایل ها و محتویات این صفحه برای مبدا X قابل دسترسی می باشد.
- :Access-Control-Allow-Credentials این هدر یک هدر پاسخ می باشد که دسترسی برای ارسال کوکیها و هدرهای اعتبارسنجی را تعیین می کند.
- :Access-Control-Expose-Headers این هدر یک هدر پاسخ می باشد که دسترسی برای تغییر هدر ها را تعیین می دهد.
- :Access-Control-Allow-Methods این هدر هم یک هدر پاسخ است، سرور با این هدر به مرورگر می گوید که متدهای (HTTP put, post, delete, get) مجاز را شناسایی کند. در صورتیکه سرور تنها اجازه یک نوع متد را داده باشد و درخواست نوع دیگری ارسال شود, درخواست ارسال شده توسط مرورگر حذف می شود.
- :Access-Control-Allow-Headers تعیین هدرهای قابل تغییر توسط درخواست دهنده.
- هدر Origin این هدر یک هدر درخواست است که به سرور می گوید از کدام دامین مبدا درخواست فرستاده شده است.