⊗ppSpPDQu 58 of 83 menu

PHP හි PDO වල විමසුම් ප්‍රශ්න

ඔබ දැනටමත් දැන සිටිය යුතු පරිදි, 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
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න