⊗ppSpPDQu 58 of 83 menu

Matatizo ya Miradi ya PDO katika PHP

Kama unavyopaswa kujua tayari, miradi ya SQL inakabiliwa na mashambulizi ya SQL. Ugani wa PDO umeundwa kupambana na mashambulizi hayo, lakini kwa kawaida, kihalisi, haifanyi hivyo otuomatiki.

Tutaangalia tatizo hili kwa kutumia mfano. Tuchukulie tuna mradi ufuatao, ambao utabadilishwa na thamani ya kutofautiana:

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

Tuchukulie kutofautiana kwetu inatoka mahali pengine ngeni, kwa mfano, kutoka kwa parameta ya GET. Kwa urahisi, hata hivyo, wacha tu weka thamani yake kwa mikono. Tunatarajia thamani ya nambari, kwa mfano, hii:

<?php $id = 1; ?>

Hacker mbaya, hata hivyo, anaweza kutuma thamani ifuatayo (tukichukulia kuwa tuna sehemu role):

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

Hii inasababisha, tulitaka mradi ufuatao:

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

Lakini tukapata ufuatao, ambao unavuta mtaalamu wa tovuti:

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

Ili kuepuka hali kama hii, katika PDO kuna utaratibu maalum uliopangwa, unaoitwa miradi iliyotayarishwa. Tutayachambua katika somo linalofuata.

Kwa makusudi fanya shambulio la SQL kwa msingi wako wa data.

Kiswahili
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Tunatumia kuki kwa ajili ya uendeshaji wa tovuti, uchambuzi na ubinafsishaji. Usindikaji wa data unafanyika kulingana na Sera ya Faragha.
kubali yote sanidi kataa