Bobby Tables: útmutató az SQL injection megelőzéséhez

0 Comments

miért vesztette el Bobby iskolája a rekordokat?

az iskola nyilvánvalóan tárolja a diákok nevét a diákok nevű táblázatban. Amikor egy új diák érkezik, az iskola beilleszti a nevét ebbe a táblázatba. A beillesztést végző kód a következőképpen nézhet ki:

az első sor egy SQL beszúrási utasítást tartalmazó karakterláncot hoz létre. A $studentName változó tartalma az SQL utasításba van ragasztva., A második sor elküldi a kapott SQL utasítást az adatbázisba. Ennek a kódnak az a hátránya, hogy a külső adatok, ebben az esetben a $studentName tartalma az SQL utasítás részévé válik.

először nézzük meg, hogy néz ki az SQL utasítás, Ha beillesztünk egy John nevű hallgatót:

Ez pontosan azt teszi, amit akarunk: beilleszti John-t a diákok asztalába.

most behelyezzük a kis Bobby táblákat, a $studentName Robert"); DROP TABLE Students;--beállítással., Az SQL utasítás a következő lesz:

Ez beilleszti Robertet a hallgatói táblába. A Beszúrás nyilatkozatot azonban most egy CSEPPASZTAL-nyilatkozat követi, amely eltávolítja a teljes Diáktáblát. Jaj!

hogyan lehet elkerülni Bobby Tables

csak egy módja annak, hogy elkerüljék Bobby Tables támadások

  • ne hozzon létre SQL utasításokat, amelyek külső adatokat tartalmaznak.
  • paraméterezett SQL hívások használata.

Ez az. Ne próbálja meg elkerülni az érvénytelen karaktereket. Ne próbáld meg magad csinálni. Ismerje meg, hogyan kell használni paraméterezett nyilatkozatok. Mindig, minden egyes alkalommal.,

a szalag egy dolgot döntően rosszul kap. A válasz nem az, hogy” megtisztítsa az adatbázis bemeneteit”. Hajlamos a hibára.


Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük