تستر CORS
تست و اشکالزدایی سیاستهای اشتراک منابع بین مبدأ (CORS) و درخواستهای API
تنظیمات درخواست
درخواست API خود را برای تست پیکربندی کنید
نمونه درخواستها
این درخواستهای API از پیش تعریف شده را امتحان کنید
اطلاعات CORS
اطلاعات اولیه در مورد CORS
CORS چیست؟ CORS (اشتراک منابع بین مبدأ) مکانیزمی است که به مرورگرهای وب اجازه میدهد تا درخواستهای بین مبدأ (دامنه، پروتکل یا پورت متفاوت) را از اسکریپتهای در حال اجرا در مرورگر انجام دهند.
هدرهای کلیدی CORS
Access-Control-Allow-Origin
: مشخص میکند که کدام مبدأها مجاز به دسترسی به منبع هستندAccess-Control-Allow-Methods
: مشخص میکند که کدام متدهای HTTP مجاز هستندAccess-Control-Allow-Headers
: مشخص میکند که کدام هدرهای HTTP میتوانند استفاده شوندAccess-Control-Allow-Credentials
: مشخص میکند که آیا اعتبارنامهها (کوکیها، احراز هویت HTTP) باید شامل شوند یا خیر
💡 راهحلهای CORS
راهحلهای سمت سرور
1. Express.js (Node.js):
const cors = require('cors'); app.use(cors({ origin: 'https://example.com', methods: ['GET', 'POST'], credentials: true }));
2. Spring Boot (Java):
@CrossOrigin(origins = "https://example.com") @RestController public class ApiController { ... }
راهحلهای سمت کلاینت
1. استفاده از سرور پروکسی:
// package.json (React) "proxy": "http://localhost:3001"
2. JSONP (فقط GET):
// راهحل محدود اما ساده fetch('api?callback=handleResponse')
🔧 پیکربندی CORS بر اساس محیط
Next.js
// next.config.js module.exports = { async headers() { return [ { source: '/api/:path*', headers: [ { key: 'Access-Control-Allow-Origin', value: '*' } ] } ] } }
Nginx
location /api { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "Content-Type, Authorization"; }
Apache
# .htaccess Header always set Access-Control-Allow-Origin "*" Header always set Access-Control-Allow-Methods "GET, POST, OPTIONS" Header always set Access-Control-Allow-Headers "Content-Type, Authorization"
پیکربندی CORS بر اساس محیط
سناریوهای تست
- • درخواست ساده: تست رفتار پایه CORS با درخواستهای GET
- • درخواست پیشپرواز: تست درخواستهای پیشپرواز با متدهای PUT/DELETE
- • هدرهای سفارشی: تست درخواستها با هدر Authorization
- • اعتبارنامهها: تست درخواستها با کوکیها
- • مدیریت خطا: تست سناریوهای شکست
ملاحظات امنیتی
- • به دلیل خطرات امنیتی، در استفاده از کاراکترهای عام (*) احتیاط کنید
- • اصل حداقل امتیاز: فقط مبدأها و متدهای ضروری را مجاز کنید
- • محدودیتهای اعتبارنامه: فقط مبدأهای خاص را هنگام درج اعتبارنامهها مجاز کنید
- • بررسی منظم: سیاستهای CORS را به صورت دورهای بررسی و بهروزرسانی کنید
نکات اشکالزدایی CORS
ابزارهای توسعهدهنده مرورگر
- • درخواستهای OPTIONS را در تب Network بررسی کنید
- • به دنبال پیامهای خطای CORS در کنسول باشید
- • هدرهای CORS را در هدرهای پاسخ تأیید کنید
ابزارهای مفید
- • تستر CORS (این ابزار)
- • Postman (برای تست API)
- • دستور curl (برای تست مستقیم سرور)