Injecció SQL

Autora: Peter Berry
Data De La Creació: 13 Agost 2021
Data D’Actualització: 22 Juny 2024
Anonim
Injecció SQL - Tecnologia
Injecció SQL - Tecnologia

Content

Definició: què significa SQL Injection?

Una injecció SQL és un atac d'ordinador en el qual s'inclou un codi maliciós en una aplicació mal dissenyada i que després es passa a la base de dades de backend. Les dades malicioses produeixen després resultats de consultes de base de dades o accions que mai no haurien estat executades.


Una introducció a Microsoft Azure i al Microsoft Cloud | Durant aquesta guia, podreu conèixer què és la informàtica en núvol i com Microsoft Azure us pot ajudar a migrar i executar el vostre negoci des del núvol.

Techopedia explica SQL Injection

Anem a passar per exemple un atac d'injecció de SQL:

Una aplicació que executa les operacions d’un banc conté menús que es poden utilitzar per cercar detalls del client mitjançant punts de dades com el número de Seguretat Social del client. En segon pla, l’aplicació truca a una consulta SQL que s’executa a la base de dades passant els valors de cerca introduïts de la manera següent:

SELECT nom de client, telèfon, adreça, data_of_birth WHERE social_sec_no = 23425

En aquest script d’exemple, l’usuari introdueix el valor 23425 a la finestra del menú de l’aplicació sol·licitant a l’usuari que introdueixi el número de Seguretat Social. Després, utilitzant el valor proporcionat per l’usuari, s’executa una consulta SQL a la base de dades.

Un usuari amb coneixements SQL pot entendre l’aplicació i, en lloc d’introduir un valor únic quan li demani el número de Seguretat Social, introduir la cadena “23425 o 1 = 1”, que es passa a la base de dades de la següent manera:

SELECT nom de client, telèfon, adreça, data_of_birth WHERE social_sec_no = 23425 o 1 = 1

La clàusula WHERE és important perquè introdueix vulnerabilitat. En una base de dades, la condició 1 = 1 sempre és certa i, perquè la consulta s'ha especificat per retornar els detalls del número de Seguretat Social del client (23425) o WHERE 1 = 1, la consulta tornarà totes les files de la taula. intenció original.

L'exemple d'atac per injecció SQL anterior es mostra senzill, però mostra com explotar una vulnerabilitat per enganyar l'aplicació per executar una consulta o una comanda de base de dades backend.

Els atacs d'injecció de SQL es poden mitigar assegurant un disseny d'aplicacions adequat, especialment en mòduls que requereixen entrada d'usuari per executar consultes o comandes de bases de dades. A l’exemple anterior, l’aplicació es podria canviar de manera que només accepta un valor numèric.