⊗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 истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан