💉
Xavfsizlik

SQL injection: nima va qanday himoyalanish

04.02.2025
← Barcha maqolalar

SQL injection — foydalanuvchi yozgan ma'lumot orqali sayt DB'siga yomon SQL kiritish. 2024 OWASP Top 10'da hali ham birinchi.

Misol

Login forma: SELECT * FROM users WHERE name='$name' AND password='$pass'. Foydalanuvchi name maydoniga: admin' OR '1'='1 — query bo'ladi: WHERE name='admin' OR '1'='1' — har doim true, ya'ni admin'ga kiradi.

Yagona to'g'ri yo'l: Prepared Statements

PHP PDO: $st = $pdo->prepare('SELECT * FROM users WHERE name=?'); $st->execute([$name]); — foydalanuvchi yozgani SQL emas, parametr deb tushuniladi.

Nima bo'lmasin?

1) String concatenation: 'WHERE id=' . $_GET['id'] — eng xavfli. 2) escape funksiyalari (mysql_real_escape_string) — ishonchsiz, eskirgan. 3) Whitelist tekshiruvlar bilan birlashtirsa — yaxshi, lekin yagona himoya emas.

ORM

Eloquent (Laravel), Doctrine, Sequelize — avtomatik prepared statements ishlatadi.

Statik analiz

PHPStan, Psalm — SQL injection mumkin joylarni topadi.

WAF

Cloudflare WAF, ModSecurity — SQL injection hujumlarni server darajasida to'sadi. Ikkinchi qatlam himoya.

Penetration test

SQLMap — ochiq vositasi. O'z saytingizni sinab ko'ring. Yiliga 1 marta professional pentest tavsiya.

O'xshash maqolalar

🔐 Parol menejerlar — Bitwarden, 1Password, LastPass va KeePass tanlovi 🍯 Honeypot — formada yashirin maydon, botlarni ushlaydi va spamni to'xtatadi 📄 /.well-known/security.txt — xavfsizlik bo'yicha bog'lanish standart 📋 GDPR moslik — Yevropa ma'lumotlarini himoya qilish majburiyatlari
🌐 Til
🇺🇿 O'zbek ✓ 🇺🇿 Ўзбек 🇷🇺 Русский 🇬🇧 English