Veb
OWASP Top 10 (2021) — dasturchilar uchun qisqa qo'llanma
OWASP Top 10 (2021) ning har bir toifasi oddiy tilda: nima bu, real loyihada qanday ko'rinadi va bugun nimani tekshirish mumkin.
· 7 daq. o'qish

OWASP Top 10 — veb-ilovalardagi eng muhim xavf toifalari ro'yxati. U OWASP hamjamiyati tomonidan tayyorlanadi va vaqti-vaqti bilan yangilanadi. Kiberxavfsizlik ekspertizasi hisobotlarida topilmalar ko'pincha shu toifalarga bog'lab yoziladi, shuning uchun dasturchi uchun bu ro'yxatni bilish — ekspertiza tilini tushunish demak.
Ro'yxat zaifliklarning aniq turlarini emas, balki toifalarini beradi. Har bir toifa ichida o'nlab CWE yozuvlari bor. Shuning uchun uni yodlash emas, o'z loyihangizga qo'llash muhim: har bir band uchun "bizda bu qayerda bo'lishi mumkin?" deb so'rang.
Quyida 2021 tahririning har bir bandi qisqacha: nima ekanligi va bugun nimani tekshirish mumkinligi.
A01. Broken Access Control — kirish nazoratining buzilishi
Foydalanuvchi o'ziga tegishli bo'lmagan ma'lumot yoki amalga kira olishi. Klassik misol: /invoices/1042 ni /invoices/1043 ga o'zgartirib, boshqa mijozning hisobini ko'rish (IDOR).
Tekshiring: har bir controller'da obyekt joriy foydalanuvchiga tegishli ekani server tomonida tekshirilyaptimi? Laravel'da bu uchun Policy va authorize() ishlatiladi. Faqat interfeysda tugmani yashirish himoya emas.
A02. Cryptographic Failures — kriptografik xatolar
Maxfiy ma'lumotning ochiq yoki zaif himoyada uzatilishi va saqlanishi: HTTP orqali login, parollarni MD5 bilan xeshlash, shifrlanmagan zaxira nusxalar.
Tekshiring: butun sayt HTTPS'da va HSTS yoqilganmi; parollar bcrypt yoki argon2 bilan xeshlanadimi; eski TLS 1.0/1.1 o'chirilganmi.
A03. Injection — inyeksiyalar
Foydalanuvchi kiritgan ma'lumot so'rov yoki buyruq tarkibiga to'g'ridan-to'g'ri qo'shilishi: SQL, OS buyruqlari, shuningdek XSS (2021 tahririda XSS shu toifaga kiritilgan).
Tekshiring: xom SQL'da DB::raw() yoki satr birlashtirish bormi; shablonlarda escape qilinmagan chiqish ({!! !!}, dangerouslySetInnerHTML) bormi. Parametrli so'rovlar va standart escape — asosiy himoya.
A04. Insecure Design — xavfsiz bo'lmagan loyihalash
Kod to'g'ri yozilgan, lekin jarayonning o'zi noto'g'ri o'ylangan. O'z mahsulotimiz ekspertizasida aynan shunday topilma bo'lgan: to'lov "muvaffaqiyatli" sahifasi provayder tasdiqlashidan oldin ko'rsatilardi, ba'zi amallarni esa kerakli holat tekshiruvisiz bajarish mumkin edi.
Tekshiring: holat o'zgaradigan har bir jarayon (to'lov, tasdiqlash, bekor qilish) server tomonida holat mashinasi kabi ishlaydimi? To'lov holati faqat provayderning tasdiqlovchi so'rovi (callback/webhook) asosida o'zgarsin.
A05. Security Misconfiguration — noto'g'ri sozlamalar
Debug rejimi yoqilgan, standart parollar, ortiqcha ochiq portlar, header'lar yo'q, ishonchsiz proksi header'larga ishonish. Bizning tajribamizda bu toifaga bir nechta topilma to'g'ri keldi: internetga ochiq FTP va panel portlari, X-Forwarded-Host ga ishonish (host header injection) va brauzerga butun marshrutlar ro'yxatining yuborilishi.
Tekshiring: APP_DEBUG=false, nmap bilan ochiq portlar, xavfsizlik headerlari, admin panel faqat IP allowlist orqali.
A06. Vulnerable and Outdated Components — zaif va eskirgan komponentlar
Ma'lum zaifligi bor kutubxona, framework yoki server dasturi.
Tekshiring:
composer audit
npm audit --omit=dev
Bundan tashqari, nginx, PHP va ma'lumotlar bazasi versiyalarini ham kuzating.
A07. Identification and Authentication Failures — autentifikatsiya xatolari
Parolni tanlab topishga cheklov yo'q, sessiya chiqishda bekor qilinmaydi, parolni tiklash tokeni qayta ishlatiladi yoki uzoq amal qiladi.
Tekshiring: login va parol tiklashda rate limiting bormi; sessiya ID login'dan keyin yangilanadimi; cookie'larda Secure, HttpOnly, SameSite bormi.
A08. Software and Data Integrity Failures — yaxlitlik xatolari
Tekshirilmagan manbadan kod yoki ma'lumot olish: CDN'dan integrity atributisiz skript, imzosiz yangilanishlar, ishonchsiz ma'lumotni deserializatsiya qilish.
Tekshiring: tashqi skriptlarda Subresource Integrity (integrity="sha384-..."); unserialize() foydalanuvchi ma'lumotiga qo'llanmaganmi; CI/CD'ga kim o'zgarish kirita oladi.
A09. Security Logging and Monitoring Failures — log va monitoring yetishmasligi
Hujum bo'lsa ham hech kim bilmaydi: muvaffaqiyatsiz kirishlar, ruxsat rad etilgan so'rovlar, admin amallari qayd etilmaydi.
Tekshiring: muhim hodisalar logga yozilyaptimi; loglarda parol va token yo'qmi; kimdir loglarni ko'rib turadimi yoki ogohlantirish bormi.
A10. Server-Side Request Forgery (SSRF)
Server foydalanuvchi bergan URL'ga so'rov yuboradi va hujumchi buni ichki xizmatlarga (masalan, 127.0.0.1 yoki bulut metadata manziliga) yo'naltiradi.
Tekshiring: "URL bo'yicha rasm yuklash", webhook manzili kabi funksiyalar bormi; bo'lsa, manzillar allowlist bo'yicha cheklanganmi va ichki IP diapazonlari bloklanganmi.
OWASP Top 10 — to'liq tekshiruv standarti emas, balki xabardorlik hujjati. Chuqurroq tekshiruv uchun OWASP ASVS talablari ishlatiladi.
Ro'yxatni amalda qanday ishlatish
- Har bir bandni loyihangizdagi aniq joylar bilan bog'lang: qaysi controller, qaysi sozlama, qaysi jarayon.
- Avtomatik vositalar (bog'liqlik auditi, header-skaner, port skaneri) bilan A02, A05, A06 ni tez yopasiz.
- A01, A04 va A07 qo'lda ko'rib chiqishni talab qiladi — skaner biznes mantiqni tushunmaydi.
- Topilgan har bir muammoni CWE identifikatori bilan qayd eting: ekspertiza hisobotidagi topilmalarni solishtirish osonlashadi.
Xulosa
OWASP Top 10 dasturchiga xavflar haqida umumiy til beradi. Uni har bir reliz oldidan qisqa tekshiruv ro'yxati sifatida ishlatsangiz, ekspertiza topadigan tipik muammolarning katta qismi oldindan yopiladi.
Loyihangizni OWASP Top 10 bo'yicha tez ko'rib chiqishni xohlaysizmi? Skanerlash uchun so'rov qoldiring — Claude AI agenti va mutaxassisimiz asosiy toifalar bo'yicha holatni ko'rsatib beramiz.


