د تېروتنې حلونه

CORS ستونزو او حل لارې؛ د Cross-Origin Resource Sharing ګټه، خطرونه او غوره عملونه

  • 11 د لوستلو لپاره دقیقې
  • د Hostragons ټیم
CORS ستونزو او حل لارې؛ د Cross-Origin Resource Sharing ګټه، خطرونه او غوره عملونه

دا بلاګ پوسته د ویب پراختیا کوونکو لپاره د Cross-Origin Resource Sharing (CORS) ستونزو باندې تمرکز کوي. دلته به تاسو ته CORS څه دی، یې اصول او ولې اړین دی، تفصیل سره روښانه شي. وروسته، CORS تېروتنې څنګه پیدا کیږي او د حل لارې يې، په تفصیل سره څېړل کېږي. امنیت او موثریت لپاره د CORS غوره عملونه او مهم ټکي هم دلته تشریح شوي دي. دا لارښود تاسو سره مرسته کوي چې خپل ویب اپلیکیشنونو کې د CORS اړوند ستونزې وپېژنئ او سم حل ورته پیدا کړئ.

CORS څه دی؟ بنسټیز معلومات او اهمیت

Cross-Origin Resource Sharing (CORS) یو امنیتي میکانیزم دی چې ویب براوزر ته دا اجازه ورکوي چې له مختلفو Domains نه منابعو ته لاسرسی وکړي. دا بنسټیزه ستونزه حل کوي چې کله ویب اپلیکیشن هغي API, Fonts یا Images ته، چې اصل Domain نه بل Domain کې ځای لري، لاسرسی غواړي. عادي ډول، د ویب براوزر Same-Origin Policy دا ډول غوښتنې ردوي، نو CORS دا محدودیتونه د خوندي طریقې سره رفع کوي.

د CORS اهمیت په عصري ویب نړۍ کې زیات دی، ځکه ډیری اپلیکیشنونه باید مختلف سرورونو یا CDN یا بهرني خدمتونو ته لاسرسی ولري، بې له CORS نه دا ممکنه نه وي، چې دا به ستاسو اپلیکیشن د کارونې او امکاناتو له پلوه محدود کړي. CORS پراختیا کوونکو ته دا اختیار ورکوي چې امنیت وساتي او اړین بیروني منابع ته لاسرسی ولري.

لاندې جدول کې، CORS بنسټیز مفاهیم او کار کولو اصول لنډ بیان شوي:

CORS څه دی؟ بنسټیز معلومات او اهمیت
مفهوم تشریح اهمیت
Same-Origin Policy براوزر د یوه Domain نه پورته شوې Script ته اجازه نه ورکوي چې له بل Domain نه منابعو ته لاسرسی وکړي. امنیت ساتي، او د خطرناکو Scripts نه حساس معلومات خوندي کوي.
Cross-Origin Request کله چې یوه ویب پاڼه له خپل Domain نه بهر ته HTTP Request کوي. غېر Domain API او منابعو ته اپلیکیشن لاسرسۍ پیدا کوي.
CORS Headers هغه ځانګړي Headers چې سرور خپل Response کې ځای کوي، څو براوزر ته د اجازتۍ حدود وښيي. براوزر ته روښانه کوي چې کوم Domainونه لاسرسۍ پیدا کولی شي.
Preflight Request براوزر د پیچلي Cross-Origin Request نه مخکې سرور ته د OPTIONS Method سره Preliminary Request لیږي. سرور ته دا امکان ورکوي چې د Request موافقه یا رد وکړي.

CORS کار کول دا ته متکي دی چې سرور د HTTP Response Headers له لارې براوزر ته وايي چې کوم Domains لاسرسی لري. سرور Access-Control-Allow-Origin Header تعریفوي، که Request Domain په دغه Header کې موجود وي یا * (هر Domain)، نو براوزر اجازه ورکوي، کنه نو غوښتنه رد کېږي او CORS Error راځي.

    CORS بنسټیز عناصر

  • Access-Control-Allow-Origin: کوم Domains ته د لاسرسۍ اجازه ورکوي.
  • Access-Control-Allow-Methods: کوم HTTP Methods (GET, POST, PUT, DELETE) کارېدلی شي.
  • Access-Control-Allow-Headers: کوم Custom Headers پذیرې دی.
  • Access-Control-Allow-Credentials: Authentication یا Cookies شته که نه.
  • Access-Control-Max-Age: Preflight نتیجه څو وخت Cache کېږي.

CORS تېروتنې اکثر د سرور غلط تنظیم نه پیدا کېږي. پراختیا کوونکي باید سرور داسې تنظیم کړي چې یوازې باوري Domains ته اجازه ورکړي. د ښه امنیت لپاره د CORS غوره عملونو عملي کول هم ضروري دي.

CORS د عصري ویب اپلکشنونو جدایي برخه ده، نه یوازې اسانتیا ورکوي بلکې امنیت هم تضمینوي. صحیح تنظیم، اپلیکیشن ته زیات امکانات او ښه تجربه ورکوي.

د Cross-Origin Resource Sharing کار کولو اصول

Cross-Origin Resource Sharing (CORS) براوزر ته اجازه ورکوي چې له یو Domain نه بل Domain ته Request وکړي. د براوزر Same-Origin Policy دا حکم لري چې Request باید له هماغه پروتوکول، Host او Port نه وي، CORS دا سرحدونه د امنیتي اصولو د مراعاتولو سره پراخوي.

د CORS هدف اساسي امنیت ساتنه ده. د Same-Origin Policy له امله، خطرناک ویب سایټونه نشي کولی حساس معلومات ته لاسرسي وکړي، خو کله-کله legitimate داده Sharing ته اړتیا وي – مثلا یوه ویب پاڼه باید له بهرني سرور نه API ته لاسرسی ولري. CORS په داسې مواردو کې خوندي حل وړاندې کوي.

د Cross-Origin Resource Sharing کار کولو اصول
ساحه تشریح بیلګه
Origin د Request صادرونکي Domain http://example.com
Access-Control-Allow-Origin سرور ټاکي چې کوم Origin ته اجازه ورکوي http://example.com, *
Access-Control-Request-Method Client وايي چې کوم HTTP Method غواړي POST, GET
Access-Control-Allow-Methods سرور اجازه ورکوي چې کوم Methods کاریدلی شي POST, GET, OPTIONS

CORS د HTTP Headers له لارې کار کوي. براوزر د Request سره Origin Header لیږي، سرور دغه Header ارزوي او د Access-Control-Allow-Origin Response سره موافقه یا رد ورکوي. براوزر د موافقه سرور سره Request ته اجازه ورکوي.

    CORS عملیاتي مرحلې

  1. براوزر له غیر Origin نه Resource غواړي.
  2. Origin Header براوزر لخوا Request ته ور اضافه کېږي.
  3. سرور Origin ارزوي.
  4. سرور Access-Control-Allow-Origin سره Reply کوي.
  5. براوزر Reply ارزوي او اجازه یا رد ورکوي.

CORS د کار کولو اصولو پيژندل د پراختیا کوونکي لپاره حیاتي دي. غلط تنظیم دا اپلیکیشن ته خطرونه پېدا کوي، نو باید د تنظیم طریقه ښه زده شي او عمل پرې وشي.

اجازه ورکولو مراحل

د CORS اجازه ورکولو مرحله کې سرور د Access-Control-Allow-Origin Header له لارې ټاکي چې کوم Domain ته اجازه ورکوي. د * (Wildcard) کارول امنیتي خطرونه پېدا کوي، په خاص باوري Domains پورې اجازه محدودول بهتره انتخاب دی ـ خصوصاً چې حساس معلومات موجود وي.

تېروتنې او حل لارې

CORS Error اکثر د سرور غلط تنظیم نه پیدا کېږي ـ Access-Control-Allow-Origin Header یا لږ یا غلط تنظیم شوی وي؛ دغه وخت براوزر Request ردوي او Error ښکاره کوي. حل هم دا دی چې سرور تنظیمات او Headers باید سم وي، او د OPTIONS Request (Preflight) هم باید صحیح Process شي.

CORS تېروتنې پېژندنه او حل لارې

Cross-Origin Resource Sharing (CORS) Errors د ویب پراختیا کوونکو لپاره عام ځورونکي ستونزه ده. دا Error هغه وخت راځي چې ویب پاڼه له مختلف Domain یا Protocol یا Port نه Request وکړي، براوزر د امنیت له امله دا رد کړي. د دې Errors پیژندنه او حل کول د عصري ویب اپلیکیشن د ښه کار لپاره مهم دي.

د CORS Error تشخیص د براوزر Developer Tools Console سره آسان دی، Error Messages معمولاً د ستونزې اصل او حل ته اشاره لري. مثلاً No 'Access-Control-Allow-Origin' header is present on the requested resource -- دا اصلاً سرور ته اشاره کوي.

CORS تېروتنې پېژندنه او حل لارې
Error Code تشریح حل لارې
403 Forbidden سرور Request درک کوي خو اجازه نه ورکوي. سرور CORS تنظیمات وڅیړئ، د اجازه ورکړل شوو Domains تثبیت کړئ.
500 Internal Server Error سرور د داخلي Error سره مخ شو. Logs وڅیړئ، ممکن د CORS غلط تنظیم وي.
CORS Error (Browser Console) براوزر د CORS Policy له امله Request رد کړه. Access-Control-Allow-Origin Header باید صحیح تنظیم شي.
ERR_CORS_REQUEST_NOT_HTTP Request د HTTP یا HTTPS له لارې نه کېږي. Request پروتوکول تصدیق کړئ.

د CORS Error حل لپاره، تر ټولو مؤثره طریقه داده چې سرور ته لازمي CORS Headers ور اضافه شي. 'Access-Control-Allow-Origin' Header چاته اجازه ورکوي، * (Wildcard) ټول Domains ته اجازه ورکوي، خو دا خطرناک دی ـ یوازې ټاکلې Domains ته اجازه ورکول بهتره دی. مثلاً 'Access-Control-Allow-Origin: https://example.com' فقط example.com ته اجازه ورکوي.

د CORS Error مختلف ډولونه یادونه کېږي:

    د غلطۍ ډولونه

  • 'Access-Control-Allow-Origin' Header غلط یا کم دی: سرور باید صحیح Headera تنظیم کړي.
  • Preflight ستونزې: OPTIONS Request باید صحیح Process شي.
  • Credentials ستونزه: Cookies یا Authentication باید صحیح انتقال شي.
  • Cross-Origin Redirect ستونزه: Redirects باید د CORS Policy مطابق وي.
  • Proxy ستونزه: Proxy باید صحیح CORS Header انتقال کړي.
  • HTTPS لازمي: Secured Protocol مهم دی.

د Error حل لپاره، سرور تنظیمات اصلاح کړئ، Client-side هم alternative حلونه لکه Proxy یا JSONP کارولی شئ ـ خو دا هم ځینې امنیتي خطرونه لري، نو سرور تنظیمات باید اصلي حل وي.

د CORS غوره عملونه

د CORS غوره عملونه

د Cross-Origin Resource Sharing (CORS) تنظیم باید په دقت سره وشي، مټي غلط تنظیم نه یوازې اپلیکیشن لپاره امنیتي ګواښ دی، بلکې ناوړه لاسرسي ته زمینه جوړوي. نو د CORS تنظیمولو پرمهال د غوره عملونو پیروي مهمه ده.

د CORS غوره عملونه
غوره عمل تشریح اهمیت
اجازه Domainونه محدود کړئ Access-Control-Allow-Origin کې یوازې باوري Domains ذکر کړئ، د * کارولو نه ډډه وکړئ. امنیت زیاتوي، غیر قانوني لاسرسي مخنیوی کوي.
ضرورت سره Credentials کاروئ که معلومات یا Authentication ضروري وي، Access-Control-Allow-Credentials: true وکاروئ. Authenticated لاسرسي ته اجازه ورکوي.
Preflight Requests صحیح مدیریت کړئ OPTIONS Requests باید صحیح Process شي، Access-Control-Allow-Methods او Access-Control-Allow-Headers تعریف شي. شخصي یا پیچلي Requests (PUT, DELETE...) اداره کېږي.
Error Messages هوښیار مدیریت کړئ CORS Errors کاروونکي ته واضح او امن بیان کړئ، حساس معلومات نه ښکاره کړئ. د کاروونکي تجربه ښه کوي، امنیتي خطرونه کموي.

د امنیت لپاره، د Access-Control-Allow-Origin کې * مټي نه کاروئ، ځکه دا هر Domain ته اجازه ورکوي؛ فقط باوري Domains ذکر کړئ.

    عملي پړاوونه

  1. ضرورتونه وڅیئ: کوم Domains ته اجازه لازمي ده.
  2. Access-Control-Allow-Origin تنظیم کړئ: یوازې باوري Domains وټاکئ.
  3. Credentials اداره کړئ: که Authentication یا Cookies ته ضرورت وي Access-Control-Allow-Credentials صحیح تنظیم کړئ.
  4. Preflight Requests Process کړئ: OPTIONS ته صحیح Response ورکړئ.
  5. Error Handling لپاره خاص Mechanism رامنځته کړئ.
  6. تنظیمات Test او Monitor کړئ: امنیتي څارنه او ازموینه وکړئ.

Preflight Request مدیریت هم زیات اهمیت لري. براوزر کله چې پیچلي عمل ترسره کوي (PUT یا DELETE)، د OPTIONS Request سره سرور ته مخ وړی؛ سرور باید صحیح Access-Control-Allow-Methods او Access-Control-Allow-Headers سره جواب ورکړي.

CORS تنظیمات باید وخت په وخت وڅیړل شي، حساسیت موجود وي، او Logs هم وګورئ. امنیتي عملونه باید دوامدار وي، صرف په شروع کې نه، بلکې د اپلیکیشن ټول عمر ته.

CORS کارولو پرمهال احتیاطونه

Cross-Origin Resource Sharing کارولو سره هم امنیتي خطرونه او تخنیکي ستونزې رامنځته کېږي. CORS ته غلط تنظیم کول حساس معلومات ته ناوړه لاسرسي ته زمینه جوړوي.

مثلاً Access-Control-Allow-Origin غلط تنظیم، که * وي، نو هر Domain ته اجازه ورکوي؛ دا باید یوازې باوري Domains ته محدود شي. لاندې جدول کې د CORS غلط تنظیماتو مثالونه او عواقب یې:

CORS کارولو پرمهال احتیاطونه
غلطۍ تشریح نتیجه
Access-Control-Allow-Origin: * د هر Domain لپاره اجازه ورکول. امنیتي خطر، ناوړه ویب سایټونه معلومات ته لاسرسي کوي.
Access-Control-Allow-Credentials: true + Access-Control-Allow-Origin: * Credentials هر Domain ته اجازه ورکوي (براوزر اکثر دا ردوي). غلط Authentication، ناوړه حرکات.
ناسم HTTP Methods ته اجازه ورکول هر Method ته اجازه ورکول، حال دا چې فقط GET یا POST لازمي وي. ناوړه لاسرسي او داده Manipulation خطر.
غیر ضروري Headers قبولول هر Header ته اجازه ورکول ښه نه دي، فقط لازمي Headers. ناوړه داده انتقال او امنیتي خطر.

Preflight Request (OPTIONS) تنظیم هم مهم دی، که سرور صحیح جواب ور نه کړي، اساسي Request به رد شي. سرور باید د OPTIONS Requests صحیح Process وکړي.

احتیاطونه

  • Access-Control-Allow-Origin باید صحیح تنظیم شي، فقط باوري سایتونه.
  • Access-Control-Allow-Credentials کارولو کې باید احتیاط وشي، غیر لازمي نه.
  • Preflight Request (OPTIONS) صحیح Process کړئ.
  • فقط لازمي HTTP Methods او Headers ته اجازه ورکړئ.
  • CORS تنظیمات وخت په وخت اصلاح او ازموینه وکړئ.
  • Browser Tools او Logs سره ستونزې څیړئ.

د CORS غلطۍ پیژندولو لپاره Browser Developer Tools ډېرې ګټورې دي. همداراز د سرور Logs هم د تنظیمات د ارزونې لپاره مهم دي. صحیح تنظیم امنیت، کاروونکي ته ښه تجربه او عصري اپلیکیشن ته دوامدار امکانات ورکوي.

ډېر پوښتل شوي پوښتنې

CORS ولې مهم دی؟ د ویب پراختیا پروسه کې څه رول لري؟

CORS د ویب سایټ امنیت زیاتوي او ناوړه منابعو ته د حساس معلوماتو لاسرسي مخنیوي کوي. دا اپلیکیشن ته د Domainونو ترمنځ منابعو د لاسرسي مناسبه اداره تضمینوي، چې له امله باثباته او خوندي تجربه رامنځته کېږي، پراختیا کوونکي باید دا ښه واقعي زده کړي ترڅو امنیتي خطر نه وي.

براوزرونه د CORS Policy څنګه عملي کوي، د کوم HTTP Headers نه کار اخلي؟

کله چې Request له غیر Origin نه وي، براوزر خود کارانه Origin Header سرور ته لیږي، سرور په جواب کې Access-Control-Allow-Origin ورکوي، براوزر دغه ارزشونه ارزوي. Access-Control-Allow-Methods, Access-Control-Allow-Headers, Access-Control-Allow-Credentials هم د لازم Method, Header او Credentials بیانوي. صحیح تنظیم د CORS ستونزو مخنیوی کوي.

CORS Error عام سببونه څه دي؟ څنګه تفتیش کولی شم؟

عام سببونه: Access-Control-Allow-Origin صحیح نه دی، مختلف Port یا Protocol نه Request، Preflight Error، Credentials غلط مدیریت. د Developer Tools Console Error Messages او Network Headers وګورئ، ستونزه پیدا کولی شئ.

Preflight Request څه دی؟ کله فعال کېږي؟

Preflight Request براوزر له سرور نه پوښتي چې کوم Method یا Header ته اجازه لري؛ دا د OPTIONS Request له لارې کېږي، کله چې غیر GET/POST یا Custom Header موجود وي، سرور باید صحیح جواب ورکړي، کنه Real Request رد کېږي.

CORS غیر فعال کول یا بازي وهل ممکن دي؟ خطر يې څه دی؟

CORS د براوزر امنیتي Policy ده، سرور تنظیمات کولی شي اجازه محدود یا پراخ کړي، خو بالکل غیر فعال کول خطرناک دی ـ ناوړه لاسرسۍ ته زمینه ورکوي. د پراختیا یا Test لپاره ځینې وختونه Proxy یا Extensions کارول، خو Production کې دا باید نه وي.

CORS امنیتي خطرونه څه دي؟ څنګه مخنیوی وکړو؟

عام خطرونه: Access-Control-Allow-Origin: * کارول، Identity ته ناوړه لاسرسي. باید فقط باوري Domains ته اجازه ورکړئ، Access-Control-Allow-Credentials په احتیاط کاروئ، د سرور بل امنیتي تدابیر هم عملي کړئ (CSRF protection وغيره).

د سرور لپاره د CORS تنظیم اصول څه دي؟ مناسب میتود څنګه وټاکم؟

سرور تنظیمات: دستی HTTP Headers، Middleware، یا د Web Server (Nginx, Apache) تنظیمات. کاری انتخاب د اپلیکیشنونو او سرور Infrastructure تابع دی، Middleware اکثره زیاته اسانه مدیریت لري، خو ساده اپلیکیشن کې دستي Headera کافي دي.

د مختلفو ماحولونو (Development, Testing, Production) لپاره CORS تنظیم څنګه اداره کړم؟

Environment Variables یا مخصوص تنظیمات Managers وکاروئ ـ Development کې Loose Settings، Production کې سخت محدودیتونه. Production لپاره فقط د لازمي Domains اجازه او جدا جدا Configurations، دا باید همیش فعال او ارزول شي.

دا مقاله شریکه کړئ:

د Hostragons ټیم

زموږ د متخصص ټیم لخوا د کوربه توب، سرورونو او ډومین نومونو په اړه تازه لارښوونې. راځئ چې په ګډه ستاسو د پروژې لپاره سم حل ومومو.

له موږ سره اړیکه ونیسئ