KavLabs
خانهبلاگ
KavLabs

یادداشت‌هایی از ذهن‌های کاوشگر، برای ذهن‌های کنجکاو

پرهام·پرهام·زال·زال·
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
نوشته‌هادسته‌بندی‌هاجستجوی پیشرفتهلاگ تغییرات

©۲٬۰۲۶ KavLabs — تمام حقوق محفوظ است

ساخته‌شده با عشق توسط پرهام و زال

واژه‌نامه
۲۵ دی ۱۴۰۲امنیت وبمتوسطزبان: فارسی

اشتراک‌گذاری منابع بین مبدا(CORS)

متوسطنسخه انگلیسی

مکانیزمی امنیتی که تعیین می‌کند کدام دامنه‌ها می‌توانند از منابع یک وب‌سایت استفاده کنند.

وبدامنهسیاستمرورگر

CORS چیه؟

خلاصه در یه جمله: CORS تعیین می‌کنه کدوم سایت‌ها می‌تونن از API یا منابع سایت تو استفاده کنن!

فرض کن یه کتابخونه داری. می‌تونی قانون بذاری که فقط اعضای کتابخونه می‌تونن کتاب قرض بگیرن، یا بگی هر کسی می‌تونه. CORS همینه — سایت تو می‌تونه بگه کدوم دامنه‌ها می‌تونن از منابعش استفاده کنن.

چطور کار می‌کنه؟

وقتی سایت A می‌خواد از API سایت B استفاده کنه، مرورگر می‌پرسه از سایت B: "آیا اجازه می‌دی سایت A ازت استفاده کنه؟" سایت B با یه Header جواب می‌ده:

bash
1Access-Control-Allow-Origin: https://site-a.com

اگه این Header نباشه یا دامنه اشتباه باشه، مرورگر اجازه نمی‌ده!

مشکلات CORS:

*Allow-Origin: : یعنی همه می‌تونن استفاده کنن! خطرناکه اگه داده‌های حساس داری.

Reflection غلط: دامنه‌ای که کاربر می‌فرسته رو بدون چک برمی‌گردونی. هکر دامنه خودش رو می‌فرسته، تو برمی‌گردونی، هکر دسترسی می‌گیره!

Credentials با Wildcard: <span dir="ltr">Access-Control-Allow-Credentials</span>: <span dir="ltr">true</span> با <span dir="ltr">Allow-Origin</span>: * ترکیب خطرناکیه!

چرا برای امنیت مهمه؟

چون CORS غلط می‌تونه منجر به دزدی داده، CSRF، یا دسترسی غیرمجاز به API بشه.

منابع و مراجع

  • developer.mozilla.org/en-US/docs/Web/HTTP/CORS
  • portswigger.net/web-security/cors

مفاهیم مرتبط

اسکریپت‌نویسی بین‌سایتی(XSS)

آسیب‌پذیری امنیتی که به مهاجمان اجازه می‌دهد اسکریپت‌های مخرب را در صفحات وبی که توسط کاربران دیگر مشاهده می‌شود، تزریق کنند.

جعل درخواست بین‌سایتی(CSRF)

حمله‌ای که مهاجم کاربر فریب‌خورده را وادار می‌کند درخواست‌های ناخواسته‌ای را به یک وب‌سایت ارسال کند.