Xavfsiz kod yozish — bu shunchaki "xato qilmaslik" emas. Bu butun bir falsafa: har bir foydalanuvchi kiritmasiga ishonmaslik, har bir tashqi manbani tekshirish va har bir chiqishni to'g'ri formatlash. Tajribali dasturchilar buni "defense in depth" deb ataydi — ya'ni har bir qatlamda himoya bo'lishi kerak. Agar bitta qatlam ishlamay qolsa, ikkinchisi himoya qiladi. Bu yondashuv ayniqsa veb-ilovalarda muhim, chunki ular doimo internet orqali hujumlarga ochiq.
SQL injection — eng xavfli zaiflik
SQL injection — bu hujumchi SQL so'roviga o'zining buyrug'ini qo'shish orqali ma'lumotlar bazasini boshqarish imkoniyatiga ega bo'lishi. Misol uchun, agar siz foydalanuvchi kiritgan ID'ni to'g'ridan-to'g'ri SQL'ga qo'shsangiz, hujumchi ID o'rniga "1 OR 1=1" yozib butun jadvalni o'qib oladi. Yoki "1; DROP TABLE users" yozib jadvalni butunlay o'chirib tashlashi mumkin. Bundan himoyalanishning yagona to'g'ri usuli — prepared statements ishlatish. PDO yoki MySQLi prepared statement'larida ma'lumotlar SQL kodi bilan aralashmaydi va hujum imkoniyati yo'qoladi.
XSS — Cross-Site Scripting hujumi
XSS hujumi — bu sahifaga begona JavaScript kodini joylashtirish. Agar siz foydalanuvchi kiritgan matnni HTML sahifaga to'g'ridan-to'g'ri chiqarsangiz, hujumchi script tag'i orqali sessiya cookie'larini o'g'irlashi, foydalanuvchini boshqa saytga yo'naltirishi yoki uning nomidan amallar bajarishi mumkin. Himoya juda oddiy: chiqishdan oldin htmlspecialchars() funksiyasini ENT_QUOTES bayrog'i bilan ishlatish kerak. Bundan tashqari Content Security Policy header'i ham qo'shimcha qatlam beradi.
CSRF — Cross-Site Request Forgery
CSRF hujumida foydalanuvchi o'zi bilmagan holda boshqa saytda amal bajaradi. Misol uchun, foydalanuvchi sizning saytingizga kirgan va sessiyasi ochiq. Keyin u boshqa saytga kirsa va u yerda yashirin forma bo'lib, sizning saytingizga so'rov yuborsa — brauzer cookie'larni avtomatik qo'shadi va so'rov amalga oshadi. Himoya — har bir formada noyob CSRF token ishlatish. Bu token sessiyada saqlanadi va serverda tekshiriladi.
Secure defaults — xavfsiz boshlang'ich sozlamalar
Yaxshi dastur shunday yozilishi kerakki, agar dasturchi hech qanday sozlama qilmasa ham, tizim xavfsiz holatda bo'lsin. Misol uchun, yangi foydalanuvchi avtomatik admin huquqlariga ega bo'lmasligi kerak. Yangi fayl avtomatik dunyo uchun ochiq bo'lmasligi kerak. Cookie'lar avtomatik HttpOnly va Secure bo'lishi kerak. Sessiya avtomatik regenerate qilinishi kerak. Bu printsip "secure by default" deyiladi va eng zamonaviy framework'larda standart sifatida qo'llaniladi.
Code review — boshqa ko'z muhim
Hatto eng tajribali dasturchi ham xatolar qiladi. Shuning uchun jamoa bo'lib ishlaganda, har bir o'zgartirish boshqa dasturchi tomonidan ko'rib chiqilishi kerak. Code review jarayonida nafaqat xatolar topiladi, balki bilim ham almashtiriladi. Bundan tashqari avtomatik tahlil vositalari — SonarQube, PHPStan, Psalm — kodning sifatini doimiy kuzatib boradi. Bu vositalar potensial xavfsizlik muammolarini ham aniqlay oladi.
Sayt.uz amaliyot
Sayt.uz platformasida barcha SQL so'rovlar PDO prepared statements orqali bajariladi. Foydalanuvchi kiritmalari htmlspecialchars() bilan filtrlanadi va Content Security Policy header'lari faollashtirilgan. Har bir muhim forma CSRF token bilan himoyalangan. Saytingizni Sayt.uz hostingda joylashtirsangiz, server darajasidagi himoya qatlamlari ham qo'shimcha xavfsizlik beradi. Domen ro'yxatdan o'tkazish va SSL sertifikat o'rnatish ham mavjud.