Los 5 errores más comunes al crear una app con IA
Hoy cualquiera puede pedirle a una IA que le monte una aplicación. Lo difícil no es que funcione, es que sea segura. Estos son los fallos que dejan a la vista los datos personales y las tarjetas de tus usuarios sin que te des cuenta.
1. Cualquiera ve los datos de cualquiera cambiando un número
Imagina que entras en tu perfil y la dirección es miapp.com/cuenta/124. Ese 124 eres tú. Cambias el número por 125 y pulsas enter. Si aparecen los datos de otra persona (su nombre, su teléfono, su tarjeta) tu app tiene un agujero de manual. Se llama IDOR y ocurre porque el servidor te da lo que pides sin comprobar antes si tienes permiso para verlo.
La IA casi nunca añade esa comprobación por su cuenta, porque le pediste mostrar la cuenta, no verificar quién la pide. Antes de devolver nada, el servidor tiene que preguntarse si quien pide la cuenta 125 es realmente su dueño. Sin esa comprobación, tu app es una puerta abierta.
2. Las claves metidas directamente en el código
Para conectar tu app con una pasarela de pago, un envío de correos o una base de datos necesitas claves. El error clásico es dejarlas escritas en la parte que se ejecuta en el navegador del usuario. Y todo lo que llega al navegador es visible: basta abrir las herramientas de desarrollo y buscar.
Si tu clave secreta de Stripe o de la base de datos está ahí, cualquiera la copia y la usa como si fuera tú. Las claves sensibles viven en el servidor, nunca en el navegador, y se guardan en variables de entorno separadas del código.
3. Fiarte de lo que el usuario escribe sin comprobarlo
Cuando alguien rellena un formulario no puedes dar por hecho que escriba lo que esperas. El caso más famoso es la inyección SQL: si tu app construye las consultas pegando directamente lo que el usuario escribió, alguien puede colar instrucciones en lugar de un nombre y hacer que tu base de datos ejecute órdenes que nunca debió. Desde ver toda la información hasta borrarla entera.
Todo lo que entra desde fuera se valida y se trata como sospechoso. Se usan consultas parametrizadas, se limita lo que se acepta y se comprueba el formato. La IA genera el camino corto que funciona en la demo, no el que aguanta a alguien intentando romperlo.
4. Guardar las contraseñas tal cual, en texto plano
Cuando un usuario elige una contraseña, esa contraseña nunca debería guardarse tal cual. Si tu base de datos guarda literalmente maria1990, el día que alguien acceda a ella (y pasa más de lo que crees) tendrá las contraseñas de todos tus usuarios en bandeja. Y como casi todos repiten contraseña, comprometes también su correo y su banco.
Las contraseñas se guardan cifradas con un proceso que no se puede revertir, usando algoritmos pensados para eso como bcrypt. Ni tú deberías poder ver la contraseña de un usuario.
5. Dejar los errores técnicos a la vista
Mientras desarrollas es cómodo que el error técnico salte en pantalla. El problema es olvidarse de quitarlo antes de publicar. Esos mensajes cuentan demasiado: qué tecnología usas, cómo se llaman tus tablas, dónde están tus archivos, a veces hasta fragmentos de datos. Para quien quiere atacarte, cada error es un mapa.
En producción el usuario ve un mensaje genérico y el detalle técnico se guarda en un registro privado al que solo tú accedes. La IA suele dejar los errores en modo desarrollo porque es lo que ayuda mientras se programa, y ahí se quedan si nadie los cambia.
Entonces, ¿la IA no sirve para crear apps?
Claro que sirve. Es una herramienta increíble para construir rápido y aprender. El problema no es usarla, es publicar lo que sale de ella sin que alguien que sabe lo revise. Funcionar y estar bien hecho no son lo mismo, y la diferencia son precisamente los datos de tus usuarios.
¿Creaste una app con IA?
Si no estás seguro de si tiene alguno de estos fallos, escríbeme y le echo un vistazo.
@jonathanbassedas →