Koti turvallisuus Mikä on sql-injektio? - määritelmä techopediasta

Mikä on sql-injektio? - määritelmä techopediasta

Sisällysluettelo:

Anonim

Määritelmä - Mitä SQL-injektio tarkoittaa?

SQL-injektio on tietokonehyökkäys, jossa haittaohjelmat upotetaan huonosti suunniteltuun sovellukseen ja siirretään sitten taustatietokantaan. Haitalliset tiedot tuottavat sitten tietokantakyselyjen tuloksia tai toimia, joita ei olisi koskaan pitänyt suorittaa.

Techopedia selittää SQL-injektiota

Katsokaamme esimerkki SQL-injektiohyökkäyksestä:


Pankin toimintoja suorittava sovellus sisältää valikoita, joita voidaan käyttää asiakkaiden tietojen etsimiseen tietopisteiden, kuten asiakkaan sosiaaliturvatunnuksen, avulla. Taustalla sovellus kutsuu SQL-kyselyä, joka suoritetaan tietokannassa siirtämällä syötetyt hakuarvot seuraavasti:


VALITSE asiakkaan_nimi, puhelin, osoite, syntymäpäivä_JOS social_sec_no = 23425


Tässä näyteohjelmassa käyttäjä syöttää arvon 23425 sovellusvalikkoikkunaan ja pyytää käyttäjää antamaan sosiaaliturvatunnuksen. Sitten, käyttäjän antamaa arvoa käyttämällä, SQL-kysely suoritetaan tietokantaan.


SQL-tietämystä omaava käyttäjä voi ymmärtää sovelluksen ja sen sijaan, että kirjoittaisi yhden arvon, kun sinulta kysytään sosiaaliturvatunnusta, kirjoita merkkijono ”23425 tai 1 = 1”, joka välitetään tietokantaan seuraavasti:


VALITSE asiakkaan nimi, puhelin, osoite, syntymäpäivä_JOS social_sec_no = 23425 tai 1 = 1


WHERE-lause on tärkeä, koska se tuo esiin haavoittuvuuden. Tietokannassa ehto 1 = 1 on aina totta, ja koska kysely on määritetty palauttamaan asiakkaan sosiaaliturvatiedot (23425) tai WHERE 1 = 1, kysely palauttaa kaikki taulukon rivit, mikä ei ollut alkuperäinen tarkoitus.


Yllä oleva SQL-injektiohyökkäysesimerkki on yksinkertainen, mutta se osoittaa, kuinka haavoittuvuuden hyödyntäminen huijaa sovellusta backend-tietokantakyselyn tai -komennon suorittamiseen.


SQL-injektiohyökkäyksiä voidaan vähentää varmistamalla asianmukainen sovellussuunnittelu, etenkin moduuleissa, jotka vaativat käyttäjän syöttämiä tietokantakyselyjen tai -komentojen suorittamista. Yllä olevassa esimerkissä sovellusta voidaan muuttaa siten, että se hyväksyy vain yhden numeerisen arvon.

Mikä on sql-injektio? - määritelmä techopediasta