⊗ppSpPDQu 58 of 83 menu

PHPda PDO so'rovlaridagi muammolar

Ma'lumki, SQL so'rovlari SQL-in'ektsiyalariga uchash xavfi mavjud. PDO kengaytmasi in'ektsiyalarga qarshi kurashish uchun yaratilgan, ammo odatda, standart sozlamalar bilan, u buni avtomatik ravishda qilmaydi.

Keling, misol orqali bu muammoni ko'rib chiqaylik. Faraz qilaylik, bizda o'zgaruvchi qo'shiladigan quyidagi so'rov mavjud:

<?php $sql = "SELECT * FROM users WHERE id=$id"; $res = $pdo->query($sql); ?>

Faraz qilaylik, bizning o'zgaruvchimiz tashqaridan keladi, masalan, GET-parametridan. Soddalik uchun, shunday deb faraz qilaylik, uni qo'lda belgilaymiz. Biz ma'lum bir raqamli qiymat kutamiz, masalan:

<?php $id = 1; ?>

Biroq, yovuz xaker quyidagi qiymatni uzatishi mumkin (bizda role maydoni mavjud deb hisoblaymiz):

<?php $id = '-1 OR role="admin"'; ?>

Ma'lum bo'ladiki, biz quyidagi so'rovni xohlagan edik:

<?php $sql = "SELECT * FROM users WHERE id=1"; $res = $pdo->query($sql); ?>

Ammo sayt administratorini o'chiradigan quyidagi so'rovni oldik:

<?php $sql = "SELECT * FROM users WHERE id=-1 OR role="admin""; $res = $pdo->query($sql); ?>

Bunday vaziyatdan qochish uchun, PDO da tayyorlangan so'rovlar deb ataladigan maxsus mexanizm mavjud. Ularni keyingi darsda o'rganamiz.

Ataylab o'zingizning bazangizga SQL-in'ektsiyani amalga oshiring.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish