Skip to main content

SQL injekzioa (iSQL)

SQL injekzioa zibereraso-mota bat da: zibergaizkile batek bere kodea web-aplikazioetan txertatzen du, kalteberatasunez edo garapen-akatsez baliatuz datu babestuetan sartzeko. Sartutakoan, webguneko datu-basean eta erabiltzaileen informazioan mugi daiteke, eta horrelakoak kontrolatu edo bahitu.

Datu-baseak kudeatzeko kontsulta-lengoaia estandar bat da SQL (Structured Query Language), 1970eko hamarkadan garatua. Adibidez, webgune batek informazioa bilatu behar duenean edo bere datu-basearen barruan editatu behar duenean erabiltzen da.

Lengoaia zabala eta malgua da SQL, eta aukera mugagabeak eskaintzen dizkie datu-baseen diseinatzaileei. Ia diseinatzaile guztiek sortzen dituzte datu-baseak beren behar partikularretara ongien egokitzen diren SQL arauen multzo batekin, eta horrek zaildu egiten du datu-base batetik SQL sententziak kopiatzea eta beste batean itsastea; izan ere, baliteke beste era batera sortu izana.

SQL injekzioak gertatzen dira hacker batek SQL kode gaiztoa (“karga erabilgarria” izenez ezagutzen dena) webgunean sartzen duenean eta kode hori bere datu-basera kontsulta legitimo bat balitz bezala bidaltzea lortzen duenean. Hori posible da web-garatzaileak bere kodea zaintzen ez duenean. Orri bat sortzen duenean, kontu handiz ibili behar du, asmo txarreko norbaitek datu-basean nahi ez dituen efektuak eragiteko erabil ez ditzan.

Hori saihesteko, garrantzitsua da sarrera-saneamendu egoki gisa ezagutzen den prozesua egitea; prozesu horrek berrikusten du erabiltzaileek sartutako informazioak ezin duela zerbitzarian kode exekutagarri gisa funtzionatu edo ezin dela helburu horrekin diseinatu ez diren eskaeretan sartu. Horrek guztiak garapenaren parte izan behar du, datu-baseak babestea lortzen baitu, SQL injekzio-erasoen aurka ez ezik, baita cross-site scriptingen aurka (gune gurutzatuetako komandoen sekuentziak) eta informazioa eskuratzeko bestelako erasoen aurka ere.

Erabiltzailearen datuak sartuz SQL injektatzea da SQL injekzio-eraso bat egiteko modurik errazena. Erabiltzailearen sarrerak biltzen eta zerbitzariari transmititzen dizkioten webgune ugari daude. Adibidez: Internet bidez eskaera bat egitean, bidalketa-helbide bat ezartzea eskatzen duen eremu bat dago, eta datu hori jaso egiten da. Eta gauza bera gertatzen da erabiltzailearen iruzkinen edo aipamenen atal batean.

Eremu horiek aurreikusi ziren ohiko edukiarekin edo erantzunekin bete ordez, hackerrek SQL injekzioa erabiltzen dute zerbait guztiz desberdina egiteko: SQL kodearen komando-sekuentzia bat sartzeko. Webguneak inprimakiaren edukia bere zerbitzarira bidaltzen duenean, komando gisa ezagutzen du zerbitzariak, eta, beraz, erasotzailearen kodea exekutatzen da.

Sarrera-saneamendu segururik gabe, betetzeko eremuak dituen inprimaki bat edo iruzkinak jartzeko lauki bat erabil daiteke kode exekutagarriarekin betetzeko eta SQL injekzioari dagokionez kalteberatasun bat eratzeko.