Spring GDS 25è Aniversari
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
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.
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.
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
Convertir una marca en un negoci que funciona.
Mig milió de persones. Una app. Zero caos.















