⊗ppSpPDQu 58 of 83 menu

Problemet e kërkesave në PDO në PHP

Siç duhet ta dini tashmë, kërkesat SQL janë të prekshme nga injeksionet SQL. Zgjerimi PDO është krijuar për të luftuar injeksionet, por thjeshtë, si parazgjedhje, ai nuk e bën këtë.

Le ta shohim problemin me një shembull. Le të themi se kemi kërkesën e mëposhtme, ku futet një variabël:

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

Le të themi se variabla jonë vjen nga diku jashtë, për shembull, nga një parametër GET. Për thjeshtësi, megjithatë, le t'i caktojmë vlerën e saj manualisht. Ne presim një vlerë numerike, për shembull, si kjo:

<?php $id = 1; ?>

Një haker i lig, megjithatë, mund të kalojë vlerën e mëposhtme (supozojmë se kemi një fushë role):

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

Rezulton se ne kishim ndërmend kërkesën e mëposhtme:

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

Por morëm kërkesën e mëposhtme, e cila nxjerr administratorin e faqes:

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

Për të shmangur një situatë të tillë, në PDO është parashikuar një mekanizëm i veçantë, i cili quhet kërkesa të përgatitura. Ato do t'i shqyrtojmë në mësimin e ardhshëm.

Kryeni me qëllim një injeksion SQL në bazën tuaj të të dhënave.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo