تکنولوژی نوین اینترنتی
CORS (Cross-Origin Resource Sharing) یک مکانیزم امنیتی است که به مرورگرها اجازه میدهد تا درخواستهایی از دامنههای مختلف (که به نام "cross-origin" شناخته میشوند) به سرور ارسال کنند. در لاراول، برای فعالسازی و مدیریت CORS، شما نیاز به تنظیمات خاصی دارید تا بتوانید درخواستهای منابع مختلف را مدیریت کنید.
در این مقاله، نحوه پیکربندی CORS در لاراول و استفاده از آن را توضیح خواهیم داد.
برای مدیریت CORS در لاراول، میتوانید از پکیج barryvdh/laravel-cors
استفاده کنید. این پکیج به شما اجازه میدهد تا درخواستهای cross-origin را به راحتی مدیریت کنید.
برای نصب پکیج، از دستور composer
استفاده کنید:
بعد از نصب پکیج، باید فایل پیکربندی مربوط به CORS را منتشر کنید. برای این کار از دستور زیر استفاده کنید:
این دستور فایل پیکربندی config/cors.php
را در پروژه شما ایجاد میکند.
در فایل config/cors.php
شما میتوانید قوانین مربوط به CORS را تنظیم کنید. به طور پیشفرض، لاراول پیکربندی مناسبی برای اکثر پروژهها دارد. با این حال، میتوانید این تنظیمات را طبق نیازهای خود تغییر دهید.
cors.php
:
paths
: این تنظیم مشخص میکند که CORS برای چه مسیرهایی فعال باشد. به عنوان مثال، اگر بخواهید فقط برای APIها CORS را فعال کنید، این مسیر را به 'api/*'
تغییر دهید.
allowed_methods
: متدهای HTTP که برای درخواستهای CORS مجاز هستند. *
به این معنی است که همه متدها مجاز هستند.
allowed_origins
: مشخص میکند که کدام اوریجینها (دامنهها) میتوانند درخواستهای CORS ارسال کنند. به طور پیشفرض این مقدار *
است که به معنی اجازه دادن به همه دامنهها است.
allowed_headers
: مشخص میکند که چه هدرهایی در درخواستهای CORS مجاز هستند.
supports_credentials
: اگر این مقدار به true
تنظیم شود، مرورگر درخواستها را همراه با کوکیها ارسال میکند.
بعد از پیکربندی، باید اطمینان حاصل کنید که Middleware مربوط به CORS در اپلیکیشن لاراول شما فعال باشد. لاراول به طور پیشفرض، این middleware را در فایل app/Http/Kernel.php
ثبت کرده است.
Kernel.php
:در قسمت protected $middleware
، پکیج CORS را به صورت زیر اضافه کنید:
این Middleware به طور خودکار درخواستها را بررسی کرده و هدرهای CORS را به پاسخها اضافه میکند.
شما میتوانید CORS را فقط برای برخی مسیرها فعال کنید و سایر مسیرها را از این تنظیمات مستثنی کنید. به این منظور، میتوانید تنظیمات را به صورت دقیقتر در routes/web.php
یا routes/api.php
مشخص کنید.
در این مثال، فقط برای مسیر /example
CORS فعال میشود.
برای آزمایش تنظیمات CORS، میتوانید از ابزارهایی مانند Postman استفاده کنید.
یک درخواست به سرور خود ارسال کنید و هدر Origin
را به یکی از دامنههای خارجی قرار دهید.
در صورتی که پاسخ حاوی هدرهای CORS باشد (مثل Access-Control-Allow-Origin
)، نشاندهنده این است که پیکربندی CORS به درستی انجام شده است.
در محیطهای تولید، معمولاً تنظیمات امنیتی بهطور دقیقتری نیاز دارند. در این حالت، بهتر است که allowed_origins
را به یک یا چند دامنه خاص محدود کنید تا فقط درخواستهای معتبر از دامنههای خاص پذیرفته شوند.
این تنظیمات از ارسال درخواستهای CORS از دامنههای غیرمجاز جلوگیری میکند.
مدیریت CORS در لاراول با استفاده از پکیج barryvdh/laravel-cors
بهراحتی امکانپذیر است. با پیکربندی مناسب این پکیج، میتوانید امنیت درخواستهای cross-origin را تضمین کرده و درخواستها را از دامنههای معتبر بپذیرید. همچنین، لاراول امکاناتی برای سفارشیسازی دقیق تنظیمات CORS فراهم کرده است تا در پروژههای مختلف به راحتی استفاده کنید.