Әсер
Зиянкес [S2] осал қолданбасының пайдаланушыларынан құпия, аутентификацияланған деректерді ұрлай алады. Егер пайдаланушы осал қолданбаға кірген кезде зиянды веб-сайтқа кірсе, зиянды сайт қолданбаның API мекенжайына қайшы келетін сұраулар жасап, [S1][S2] жауаптарын оқи алады. Бұл жеке ақпаратты, соның ішінде пайдаланушы профильдерін, CSRF таңбалауыштарын немесе [S2] жеке хабарламаларын ұрлауға әкелуі мүмкін.
Негізгі себеп
CORS — серверлерге [S1] ресурстарын жүктеуге рұқсат етілген бастапқыларды (домен, схема немесе порт) көрсетуге мүмкіндік беретін HTTP тақырыбына негізделген механизм. Әдетте осалдықтар сервердің CORS саясаты тым икемді немесе нашар енгізілген [S2] болғанда пайда болады:
- Шағылысқан түпнұсқа тақырыбы: Кейбір серверлер
Originтақырыбын клиент сұрауынан оқиды және оныAccess-Control-Allow-Origin(ACAO) [S2] жауап тақырыбына қайталайды. Бұл кез келген веб-сайтқа [S2] ресурсына қол жеткізуге тиімді мүмкіндік береді. - Қате конфигурацияланбаған қойылмалы таңбалар:
*қойылмалы таңба кез келген бастауға ресурсқа кіруге мүмкіндік бергенімен, оны тіркелгі деректерін (мысалы, cookie файлдары немесе авторизация тақырыптары) [S3] талап ететін сұраулар үшін пайдалану мүмкін емес. Әзірлеушілер жиі [S2] сұрауы негізінде ACAO тақырыбын динамикалық түрде жасау арқылы мұны айналып өтуге тырысады. - «Нөл» ақ тізімі: Кейбір қолданбалар
nullтүпнұсқасын ақ тізімге енгізеді, ол қайта бағытталған сұраулар немесе жергілікті файлдар арқылы іске қосылуы мүмкін, бұл зиянды сайттарға кіруге рұқсат алу үшінnullшығу тегі ретінде маскировка жасауға мүмкіндік береді. [S2][S3]. - Талдау қателері:
Originтақырыбын тексеру кезіндегі регекс немесе жолды сәйкестендірудегі қателер шабуылдаушыларғаtrusted-domain.com.attacker.com[S2] сияқты домендерді пайдалануға мүмкіндік береді.
CORS сайт аралық сұрауды жалған жасаудан (CSRF) [S2] қорғау емес екенін ескеру маңызды.
Бетонды түзетулер
- Статикалық ақ тізімді пайдаланыңыз:
Access-Control-Allow-Originтақырыбын сұраудыңOrigin[S2] тақырыбынан динамикалық түрде жасаудан аулақ болыңыз. Оның орнына сұраудың бастауын [S3] сенімді домендерінің қатты кодталған тізімімен салыстырыңыз. - «Нөл» түпнұсқадан аулақ болыңыз:
nullрұқсат етілген түпнұсқалардың ақ тізіміне ешқашан [S2] қоспаңыз. - Тіркелгі деректерін шектеу:
Access-Control-Allow-Credentials: trueтек [S3] арасындағы нақты өзара әрекеттесу үшін өте қажет болса ғана орнатыңыз. - Дұрыс тексеруді пайдаланыңыз: Бірнеше түпнұсқаны қолдау керек болса,
Originтақырыбының тексеру логикасы сенімді және ішкі домендер немесе ұқсас көрінетін [S2] домендері арқылы айналып өтуге болмайтынына көз жеткізіңіз.
FixVibe оны қалай тексереді
FixVibe енді мұны жабық белсенді тексеру ретінде қамтиды. Доменді растағаннан кейін active.cors синтетикалық шабуылдаушының шығу тегі бар active.cors бір шыққан API сұрауларын жібереді және CORS жауап тақырыптарын қарастырады. Ол жалпыға ортақ емес API соңғы нүктелеріндегі еркін шығу тегі, тіркелгі деректері бар CORS қойылмалы таңба және ашық CORS және қоғамдық актив шуын болдырмайды.
