Logo de Dallonses

SQL injection

Què és la SQL injection?

La SQL injection és un atac en què una entrada no fiable altera la consulta de base de dades que executa un servidor. Quan una aplicació construeix una consulta enganxant l'entrada de l'usuari directament dins d'una cadena, un atacant pot escriure una entrada que canvia el que fa la consulta. En lloc de buscar un nom d'usuari, la consulta podria retornar totes les files, saltar-se la comprovació de contrasenya o eliminar una taula. L'atac afecta la base de dades i les dades que hi ha al darrere, que és el que el fa perillós.

Funciona perquè l'aplicació no pot distingir entre dada i comanda un cop es barregen en una sola cadena. Introdueix un valor com ' OR '1'='1 en un formulari de login construït així i la condició es torna sempre certa, deixant entrar algú sense contrasenya. Això difereix del XSS, que apunta al navegador d'un altre usuari. La SQL injection apunta al servidor i al seu magatzem. Tots dos venen de la mateixa errada, confiar en l'entrada, però ataquen capes diferents.

La solució són les consultes parametritzades, també anomenades sentències preparades. L'estructura de la consulta es defineix a part dels valors, així l'entrada de l'usuari mai pot canviar la comanda. Els ORM i els query builders ho fan per defecte, per això són més segurs que les cadenes fetes a mà. Els comptes de base de dades amb privilegis mínims i la validació d'entrada afegeixen més capes, limitant el dany encara que alguna cosa s'esmunyi.

SQL injection a Dallonses

Mai construïm consultes concatenant l'entrada de l'usuari. Les consultes parametritzades són el valor per defecte a cada projecte, i els comptes de base de dades reben només els permisos que la feina necessita i res més. Quan revisem un pull request, qualsevol consulta crua que gestioni entrada és una alerta en què ens aturem.

Això viu dins de la nostra pràctica més àmplia d'estratègia i QA governance a través del desenvolupament web i les aplicacions web a mida. La seguretat és part de l'assegurament de qualitat de programari, comprovada de forma contínua en lloc d'auditada un cop al final. Hem construït sistemes que guarden dades sensibles de clients i de negoci per a marques on una filtració seria una fallada real, i aquesta responsabilitat modela com escrivim la capa de dades des del primer dia.

Tens una base de dades amb dades que no et pots permetre perdre? Assegurem-nos que segueix sota pany.

Parlem de desenvolupaments segurs

Serveis relacionats


Preparat per a traballar junts?

Reserva una reunió
Aymón sostenint una revista Tools davant de la seva cara
Ari treballant en un portàtil a l'aire lliure envoltada de plantes
Vista superior d'un escriptori de fusta amb teclat, ratolí i auriculars
Il·lustració dibuixada a mà d'una mà chasquejant els dits
Nico recolzat contra un dispensador d'aigua al costat d'un extintor
Primer pla d'un ordinador obert amb placa de circuit i components sobre un escriptori de fusta
Bernat i Andreu col·laborant en un escriptori amb monitors i un portàtil
Il·lustració dibuixada a mà d'una mà oberta saludant
Aymón sostenint una revista Tools davant de la seva cara
Ari treballant en un portàtil a l'aire lliure envoltada de plantes
Vista superior d'un escriptori de fusta amb teclat, ratolí i auriculars
Il·lustració dibuixada a mà d'una mà chasquejant els dits
Nico recolzat contra un dispensador d'aigua al costat d'un extintor
Primer pla d'un ordinador obert amb placa de circuit i components sobre un escriptori de fusta
Bernat i Andreu col·laborant en un escriptori amb monitors i un portàtil
Il·lustració dibuixada a mà d'una mà oberta saludant