Ta'sir
Buzg'unchi zaif [S2] ilovasi foydalanuvchilaridan nozik, autentifikatsiya qilingan ma'lumotlarni o'g'irlashi mumkin. Agar foydalanuvchi zaif ilovaga kirgan holda zararli veb-saytga kirsa, zararli sayt ilovaning API ga oʻzaro kelib chiqish soʻrovlarini yuborishi va [S1][S2] javoblarini oʻqishi mumkin. Bu shaxsiy ma'lumotlar, jumladan, foydalanuvchi profillari, CSRF tokenlari yoki shaxsiy xabarlar [S2] o'g'irlanishiga olib kelishi mumkin.
Asosiy sabab
CORS HTTP sarlavhasiga asoslangan mexanizm boʻlib, serverlarga [S1] resurslarini yuklash uchun qaysi manbalar (domen, sxema yoki port) ruxsat etilganligini belgilash imkonini beradi. Zaifliklar odatda serverning CORS siyosati juda moslashuvchan yoki yomon amalga oshirilgan [S2] bo'lsa paydo bo'ladi:
- Origin sarlavhasi aks ettirilgan: Ba'zi serverlar mijoz so'rovidan
Originsarlavhasini o'qiydi va uniAccess-Control-Allow-Origin(ACAO) javob sarlavhasi [S2]da aks ettiradi. Bu har qanday veb-saytga [S2] resursiga kirish imkonini beradi. - Noto'g'ri sozlangan joker belgilar:
*joker belgisi har qanday manbaga resursga kirishga ruxsat bergan bo'lsa-da, uni hisobga olish ma'lumotlarini (masalan, cookie fayllari yoki avtorizatsiya sarlavhalari) [S3] talab qiladigan so'rovlar uchun ishlatib bo'lmaydi. Ishlab chiquvchilar ko'pincha [S2] so'rovi asosida ACAO sarlavhasini dinamik ravishda yaratish orqali buni chetlab o'tishga harakat qilishadi. - Oq roʻyxatga “null”: Baʼzi ilovalar
nullmanbasini oq roʻyxatga kiritadi, bu esa qayta yoʻnaltirilgan soʻrovlar yoki mahalliy fayllar orqali ishga tushirilishi mumkin, bu esa zararli saytlarga ruxsat olish uchunnullmanbasi sifatida maskarad qilish imkonini beradi. [S2][S3]. - Tahlil qilish xatolari:
Originsarlavhasini tekshirishda regex yoki qatorni moslashtirishdagi xatolar tajovuzkorlargatrusted-domain.com.attacker.com[S2] kabi domenlardan foydalanishga ruxsat berishi mumkin.
Shuni ta'kidlash kerakki, CORS saytlararo so'rovlarni qalbakilashtirishdan (CSRF) [S2] himoyasi emas.
Beton tuzatishlar
- Statik oq roʻyxatdan foydalaning:
Access-Control-Allow-Originsarlavhasini soʻrovningOrigin[S2] sarlavhasidan dinamik ravishda yaratishdan saqlaning. Buning o'rniga, so'rovning kelib chiqishini [S3] ishonchli domenlarning qattiq kodlangan ro'yxati bilan solishtiring. - "Nol" kelib chiqishidan saqlaning:
nullni hech qachon ruxsat etilgan manbalar roʻyxatiga [S2] kiritmang. - Hisob maʼlumotlarini cheklash:
Access-Control-Allow-Credentials: truefaqat oʻzaro bogʻliqlik [S3] uchun zarur boʻlsagina oʻrnating. - To‘g‘ri tekshirishdan foydalaning: Agar bir nechta manbalarni qo‘llab-quvvatlashingiz kerak bo‘lsa,
Originsarlavhasi uchun tekshirish mantig‘i mustahkam va subdomenlar yoki shunga o‘xshash ko‘rinishdagi [S2] domenlari tomonidan chetlab o‘tib bo‘lmasligiga ishonch hosil qiling.
FixVibe buni qanday sinovdan o'tkazadi
FixVibe endi buni faol tekshiruv sifatida o'z ichiga oladi. Domen tekshirilgandan so‘ng, active.cors sintetik hujumchi kelib chiqishi bilan bir xil kelib chiqishi API so‘rovlarini yuboradi va CORS javob sarlavhalarini ko‘rib chiqadi. Unda ommaviy bo‘lmagan API so‘nggi nuqtalarida o‘zboshimchalik bilan kelib chiqishi, joker belgilar bilan tasdiqlangan CORS va keng ochiq CORS davlat aktivlari shovqinidan qochadi.
