Por qué el código generado por IA es inseguro por defecto
La IA optimiza para el que le diste, y tu prompt casi siempre dice "que funcione", nunca "que sea seguro". Así que produce el camino más corto hacia una función que funciona. Ese camino más corto suele ser el inseguro: consultas construidas por concatenación de cadenas de texto, un (una de las puertas direccionables de tu app — una concreta donde la app responde a peticiones) sin verificación de permisos, un pegado directamente en el código porque así era el ejemplo del que aprendió.
Y va a peor, porque la IA aprendió de todo internet, incluida una década de tutoriales y repositorios abandonados que ya eran inseguros de por sí. El código inseguro es más frecuente en sus datos de entrenamiento que el código seguro, porque el código seguro es más difícil de escribir y más raro de publicar. Cuando pides "un formulario de inicio de ", lo más probable estadísticamente es que obtengas el formulario de inicio de sesión promedio de internet, y el formulario de inicio de sesión promedio de internet tiene problemas.
La IA tampoco tiene ninguna noción de amenaza. Una persona que construye una función de subida de archivos siente un destello de preocupación: ¿y si alguien sube algo malicioso? La IA no siente nada. Escribe el manejador con la misma confianza tanto si es hermético como si está abierto de par en par. No hay vacilación, ni un "hmm, esta parte me pone nervioso". La cuota de nerviosismo tienes que ponerla tú.
La conclusión no es "el código de la IA es peligroso, no lo uses". Es que "funciona" y "es seguro" son dos preguntas distintas, y la IA solo responde a la primera a menos que la obligues a responder también a la segunda.