SQL injekzio
SQL injekzioa kodigo intruso infiltrazio metodo bat da, eta aplikazio bateko balidazio-mailan zaurgarritasun informatiko batez abantaila hartuz, datu-base batean operazioak egitea ahalbidetzen du. Ahultasun honen jatorria, SQL kodea duen edo sortzen duen programa batean erabilitako aldagaiak behar bezala ez egiaztatzean edo iragaztean datza. Izan ere, beste hizkuntza batean txertatuta dagoen programazio-lengoaia edo script batean gerta daitekeen kalteberatasun mota orokorrago baten errorea da. SQL Injekzioa zaurgarritasun mota edo infiltrazio metodo bat izan daiteke. Hau gertatzen da ezjakintasuna eta konprobazio ezarengatik, adibidez: SQL intruso kodea txertatzea eta inkrustatutako kode zatia kontuan ez hartzea.
Deskribapena
SQL injekzio bat dago edo sortu da, nolabait, SQL kode inbaditzailea programatutako SQL kodearen barruan txertatzen edo "injektatzen" denean, programaren funtzionamendu normala aldatzeko eta, horrela, datu-basean txertatutako kode "inbaditzailearen" zatia exekutatzea lortzen da. Intrusio mota hori maltzurra, kaltegarria edo espioia izan ohi da, eta, beraz, segurtasun informatikoko arazo bat da, eta aplikazioaren programatzaileak kontuan hartu behar du, saihestu ahal izateko. Arduragabekeriaz edo arazoari buruzko ezjakintasunez egindako programa bat kaltebera izan daiteke, eta sistemaren segurtasuna (datu-basea) arriskuan jar daiteke.
Intrusioa programa zaurgarria exekutatzean gertatzen da, bai mahaigaineko ordenagailuetan bai webguneetan, azken kasu horretan horiek hartzen dituen zerbitzarian exekutatzen da. Kalteberatasuna automatikoki gerta daiteke programa batek SQL sententzia bat gauzatze-denboran sortzean, edo garapen-fasean, programatzaileak SQL sententzia modu babesgabean exekutatzen duenean. Programatzaileak erabiltzaileak sartu beharreko parametroak behar eta erabiltzen baditu datu-base bat kontsultatzeko, parametroen barruan sar daiteke SQL intruso kodea.
Kontsulta datu-basean exekutatzean, injektatutako SQL kodea ere exekutatu egingo da, eta hainbat ekintza egin ahal izango ditu, hala nola erregistroak txertatu, datuak aldatu edo ezabatu, sarbideak baimendu eta ordenagailuan beste kode maltzur mota bat exekutatu. Adibidez, hurrengo kode honek web-aplikazio batean dagoen eta kontsultatu beharreko erabiltzaile-izena duen "izenaErabiltzaile" parametro bat du.
Sententzia honek, "erabiltzaileak" taulako kontsultatu nahi den erabiltzaile-izen baten (izenaErabiltzaile) datuak ("erabiltzaileak" taulan ageri diren datuak) itzultzen ditu. SQL kode originala eta ahula:
kontsulta := "SELECT * FROM erabiltzaileak WHERE izena = '" + izenaErabiltzaile + "';"
Erabiltzaileak izen bat idazten baldin badu, adibidez "Amaia", taulako "Amaia" erabiltzailearen datuak itzuliko ditu. Aplikazioak SQL sententzia bat sortuko du, hurrengoaren antzekoa, non datu-basean "Amaia" izena duten erregistro guztiak hautatuko dira:
SELECT * FROM erabiltzaileak WHERE izena = 'Amaia';
Baina hurrengo sententzia izenaren ondoren idaztean:
Nekane'; DROP TABLE erabiltzaileak; SELECT * FROM datuak WHERE izena LIKE '%
Hurrengo SQL kontsulta sortuko da:
SELECT * FROM erabiltzaileak WHERE izena = 'Nekane';
DROP TABLE erabiltzaileak;
SELECT * FROM datuak WHERE izena LIKE '%
Datu-basean, kontsulta adierazitako ordenan exekutatuko da, 'Nekane' izeneko erregistro guztiak hautatuko dira (SELECT * FROM erabiltzaileak WHERE izena = 'Nekane'), 'erabiltzaileak' taula ezabatuko da (DROP TABLE erabiltzaileak) eta, azkenik, "datuak" taula osoa hautatuko du (SELECT * FROM datuak WHERE izena LIKE '%), web-erabiltzaile arruntek eskuragarri izan behar ez dutena. Laburbilduz, programatzaileak aurreikusi behar du erabiltzaileek egin al dituzten kontsultak, informazio lapurreta, gehiketa edo galera ekiditeko.
Kanpo estekak
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.









