Shoxrux Shokirov.
Shoxrux Shokirov.
Ta'lim markazlari uchun sertifikatlar bazasini qurish jarayoni shunchaki kod yozish emas, katta mas'uliyatni yelkaga olish edi. Tizimda 1000 dan ortiq talabaning shaxsiy ma'lumotlari, ularning mehnati va yutuqlari saqlanardi. Bunday raqamlar ortida insonlarning ishonchi yotadi. Bu esa faqat bitta narsani anglatadi: xatolikka umuman joy yo'q.
Xavfsizlik — bu tasodif emas, u uzluksiz intizomdir. Penetration (buzib kirish) testlaridan olingan achchiq va qimmatli saboqlar asosida tizimni yengilmas qasrga aylantirishning 5 ta amaliy qadamini baham ko'raman.
Tashqaridan kelayotgan har bir $_GET, $_POST yoki hatto zararsizdek ko'ringan HTTP header — bu potensial hujum vektori. Saytingizga uzatilayotgan har qanday ma'lumotga go'yo ichiga bomba yashiringan qutidek munosabatda bo'ling.
Qat'iy validatsiya va tiplashtirish. Barcha kirish nuqtalarida o'rnatilgan nazorat postlari bo'lishi shart.
Prepared statements. Baza bilan ishlashda bu shunchaki tavsiya emas, balki muzokara qilinmaydigan eng quyi minimumdir.
Ko'pchilik dasturchilar e'tibordan chetda qoldiradigan ushbu himoya qatlami, aslida, xakerlar yo'lidagi eng katta to'siqlardan biridir. Quyidagi besh qator kod tizimning hujum yuzasini shunchalik qisqartiradiki, bu deyarli sehrga o'xshaydi:
Content-Security-Policy: default-src 'self' Strict-Transport-Security: max-age=31536000; includeSubDomains X-Content-Type-Options: nosniff X-Frame-Options: DENY Referrer-Policy: strict-origin-when-cross-origin
Foydalanuvchining holatini o'zgartiruvchi har qanday so'rov (POST, PUT, DELETE) yashirin muhrga — sessiyaga qat'iy bog'langan tokenga muhtoj. Bu juda oddiy eslab qolinadigan qoida, lekin uni unutish qanday oqibatlarga olib kelishini bilasizmi? Foydalanuvchi hisobining jimgina va asoratsiz o'g'irlanishiga.
Cross-Site Scripting (XSS) haqida gap ketganda ko'pchilik ma'lumotni bazaga qanday yozishda xato qidiradi. Yo'q, XSS — bu kirish muammosi emas, bu chiqish muammosi. Ma'lumotni ma'lumotlar bazasida qanday saqlashingiz unchalik muhim emas; eng muhimi, uni foydalanuvchiga (HTML'ga) ko'rsatishdan oldin qanday qilib ekranlashingiz (escaping). Zaharli kod o'qilmasdan oldin zararsizlantirilishi kerak.
Tizimni ishga tushirishdan oldin maqsadli penetration test o'tkazish — bu xakerlardan bir qadam oldinda yurish demakdir. Buni oltin qoida sifatida qabul qiling: siz hozir topgan har bir zaiflik — bu tizim ishga tushgandan keyin xakerlar tomonidan topilmagan zaiflikdir.
Biz yaratgan tizim Google Lighthouse tahlilida kutilganidan ham a'lo natija ko'rsatdi: 97/100 Performance, 100/100 Best Practices, 96/100 Accessibility.
Ko'pchilik xavfsizlik choralari saytni sekinlashtiradi deb o'ylaydi. Ammo natijalar shuni isbotladiki, xavfsizlik va tezlik bir-biriga dushman emas. Ular toza kod, to'g'ri arxitektura va bir xil intizomning go'zal natijasidir.
AI bilan yaratildi · Shokirov Shoxrux · 2026