⊗ppSpPDQu 58 of 83 menu

PDO менен PHPдеги суроолордун көйгөйлөрү

Сиз буга чейин билишиңиз керек, SQL суроолору SQL-инъекцияларга дуушар болот. PDO кеңейтмеси инъекциялар менен күрөшүүгө арналган, бирок жөн гана, демейки абалда, ал муну жасабайт.

Көйгөйгө мисал аркылуу карап көрөлү. Бизде төмөнкү суроо болсун, ага өзгөрмө киргизилет:

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

Биздин өзгөрмөбүз сырттан келет деп коёлу, мисалы, GET-параметринен. Жөнөкөйлүктүн үчүн, бирок, жөн гана анын маанисин кол менен белгилейли. Биз бир сандык маани күтөбүз, мисалы, төмөнкүдөй:

<?php $id = 1; ?>

Зордукчу хакер, бирок, төмөнкү маанини бере алат (бизде role деген талаа бар деп эсептейбиз):

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

Анда биз төмөнкү суроону күттүк:

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

Бирок төмөнкү суроо чыкты, ал сайттын администраторун алып чыгат:

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

Ушундай жагдайдан качуу үчүн, PDOдо даярдоо суроолору деп аталуучу атайын механизм камсыз кылынган. Аларды биз кийинки сабакта талкоёбуз.

Өз каалооңуз менен SQL-инъекция жүргүзүңүз сиздин базаңызга.

Кыргызча
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어LietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу