FixVibe
Covered by FixVibehigh

CORS Конфигуратсияи нодуруст: Хавфи сиёсатҳои аз ҳад зиёд иҷозатдодашуда

Мубодилаи захираҳои байнисоҳавӣ (CORS) як механизми браузерест, ки барои истироҳати Сиёсати якхела (SOP) тарҳрезӣ шудааст. Гарчанде ки барои веб-барномаҳои муосир зарур аст, татбиқи номатлуб, ба монанди аксбардории сарлавҳаи пайдоиши дархосткунанда ё рӯйхати сафед кардани пайдоиши 'null' - метавонад ба сайтҳои зараровар имкон диҳад, ки маълумоти шахсии корбарро хориҷ кунанд.

CWE-942

Таъсир

Ҳамлагар метавонад маълумоти ҳассос ва тасдиқшударо аз корбарони замимаи осебпазир [S2] дуздад. Агар корбар ҳангоми ворид шудан ба барномаи осебпазир ба вебсайти зараровар ворид шавад, сайти шубҳанок метавонад ба API дархостҳои байнисоҳавӣ ирсол кунад ва посухҳои [S1][S2]-ро хонад. Ин метавонад боиси дуздии маълумоти хусусӣ гардад, аз ҷумла профилҳои корбар, аломатҳои CSRF ё паёмҳои хусусӣ [S2].

Сабаби аслӣ

CORS механизми дар асоси HTTP-сарлавҳаест, ки ба серверҳо имкон медиҳад, ки муайян кунанд, ки кадом сарчашмаҳо (домен, схема ё порт) барои боркунии захираҳои [S1] иҷозат дода шудаанд. Осебиятҳо одатан вақте ба вуҷуд меоянд, ки сиёсати CORS-и сервер аз ҳад чандир аст ё [S2] суст амалӣ карда мешавад:

  • Сарлавҳаи пайдоиши инъикосшуда: Баъзе серверҳо сарлавҳаи Origin-ро аз дархости муштарӣ мехонанд ва онро дар сарлавҳаи посухи Access-Control-Allow-Origin (ACAO) [S2] такрор мекунанд. Ин ба таври муассир имкон медиҳад, ки ҳар як вебсайт ба захираи [S2] дастрасӣ пайдо кунад.
  • Аломатҳои ҷобаҷогузории нодуруст: Ҳангоме ки аломати ҷодугарии * ба ҳама гуна сарчашма имкон медиҳад, ки ба манбаъ дастрасӣ дошта бошад, онро барои дархостҳое, ки маълумоти эътимоднома талаб мекунанд (ба мисли кукиҳо ё сарлавҳаҳои авторизатсия) [S3] истифода бурдан мумкин нест. Таҳиягарон аксар вақт кӯшиш мекунанд, ки онро бо роҳи динамикӣ тавлид кардани сарлавҳаи ACAO дар асоси дархости [S2] гузаранд.
  • Рӯйхати сафеди 'null': Баъзе барномаҳо пайдоиши null-ро ба рӯйхати сафед дохил мекунанд, ки он метавонад тавассути дархостҳои масир ё файлҳои маҳаллӣ оғоз шавад ва ба сайтҳои зараровар имкон медиҳад, ки ҳамчун сарчашмаи null дастрасӣ пайдо кунанд. [S2][S3].
  • Хатоҳои таҳлил: Хатогиҳо дар мувофиқати регекс ё сатр ҳангоми тасдиқи сарлавҳаи Origin метавонад ба ҳамлагарон имкон диҳад, ки доменҳоро мисли trusted-domain.com.attacker.com [S2] истифода баранд.

Қайд кардан муҳим аст, ки CORS муҳофизат аз қалбакии дархости байнисоҳавӣ (CSRF) [S2] нест.

Ислоҳҳои мушаххас

  • Рӯйхати сафеди статикиро истифода баред: Аз тавлиди динамикии сарлавҳаи Access-Control-Allow-Origin аз Origin дархости [S2] худдорӣ кунед. Ба ҷои ин, пайдоиши дархостро бо рӯйхати сахткоди доменҳои боэътимоди [S3] муқоиса кунед.
  • Аз пайдоиши 'null' худдорӣ кунед: Ҳеҷ гоҳ null-ро ба рӯйхати сафеди пайдоиши иҷозатдодашудаи худ дохил накунед [S2].
  • Маҳдуд кардани эътимоднома: Танҳо Access-Control-Allow-Credentials: true-ро дар ҳолати зарурӣ барои ҳамкории мушаххаси байнисоҳавӣ [S3] таъин кунед.
  • Истифодаи тасдиқи дуруст: Агар шумо бояд сарчашмаҳои сершуморро дастгирӣ кунед, боварӣ ҳосил кунед, ки мантиқи тасдиқи сарлавҳаи Origin устувор аст ва аз ҷониби зердоменҳо ё доменҳои шабеҳи [S2] гузаштан мумкин нест.

Чӣ тавр FixVibe онро озмоиш мекунад

FixVibe ҳоло инро ҳамчун чеки фаъоли дарвозабон дар бар мегирад. Пас аз санҷиши домен, active.cors дархостҳои API-ро бо пайдоиши ҳамлаи синтетикӣ мефиристад ва сарлавҳаҳои посухи CORS-ро баррасӣ мекунад. Дар он гузоришҳо сарчашмаҳои худсарона, аломати ваҳшӣ бо шаҳодатномаи CORS ва CORS-и васеъ кушода дар нуқтаҳои ғайридавлатии API ҳангоми пешгирӣ аз садои дороиҳои ҷамъиятӣ инъикос ёфтааст.