¿Por qué es peligroso utilizar tal cual el código de registro creado por la IA?
Si le pides a una IA generativa, como ChatGPT o Claude, que «cree una función de registro con correo electrónico y contraseña», obtendrás en poco tiempo un código que funciona. Sin embargo, el proceso de registro en un servicio real no se limita a un simple formulario de entrada y a la función de almacenamiento en una base de datos. Se trata de un sistema operativo que debe diseñarse teniendo en cuenta la recuperación de cuentas, el cambio de contraseña, la baja de usuarios, la política de tratamiento de datos personales, las condiciones de uso, los permisos de administrador y la política de conservación de datos.
En particular, en Corea, cuando se recopila información que permite identificar a una persona —como el correo electrónico, el nombre, el número de teléfono móvil o los identificadores de inicio de sesión en redes sociales—, hay que tener en cuenta las obligaciones relacionadas con el tratamiento de datos personales que establece la Ley de Protección de Datos Personales. El código generado por la IA no es más que un ejemplo genérico, y la responsabilidad legal y operativa del servicio real recae en el operador del mismo.
Principio fundamental: la IA puede crear código, pero no puede decidir las políticas en su lugar
El código creado por la IA tiende a centrarse en si «funciona». Por el contrario, un servicio real debe poder responder a las siguientes preguntas:
- ¿Qué procedimiento se sigue para recuperar una cuenta cuando el usuario olvida su contraseña?
- ¿Se vuelve a verificar la contraseña actual al cambiarla?
- Cuando se recibe una solicitud de baja, ¿qué datos se eliminan y cuáles se conservan?
- ¿Se indican con exactitud en la política de tratamiento de datos personales los datos que se recogen realmente, los fines y el periodo de conservación?
- ¿Existe un fundamento contractual que permita suspender a los usuarios que incumplan las condiciones de uso?
- ¿Se muestra el mínimo imprescindible de datos personales en el panel de administración y se registran los accesos?
Si a la IA solo se le dice «crea un proceso de registro», estas decisiones pueden quedar fuera. Por lo tanto, el operador debe establecer primero las políticas y diseñar las indicaciones para que la IA plantee preguntas sobre los aspectos que no se hayan definido.
Seguridad básica: nunca se deben almacenar las contraseñas en texto claro
Ni siquiera el operador del servicio debe conocer la contraseña del usuario en texto claro. Si las contraseñas se almacenan en texto claro en la base de datos, los daños se ampliarán de inmediato en caso de fuga de datos.
El método seguro consiste en convertir las contraseñas en un hash unidireccional antes de almacenarlas. El hash unidireccional es un método de conversión diseñado para que la recuperación del texto original sea prácticamente imposible. Por lo general, para el almacenamiento de contraseñas se recomiendan algoritmos diseñados específicamente para este fin, como bcrypt, Argon2id o PBKDF2, en lugar de funciones hash generales rápidas.
Aspectos que deben comprobarse al almacenar contraseñas
| Aspecto a comprobar | Recomendación | Motivo |
|---|---|---|
| Almacenamiento en texto plano | Prohibido en todo caso | En caso de fuga de la base de datos, todas las cuentas quedarían inmediatamente en peligro |
| Algoritmo de hash | Utilizar bcrypt, Argon2id, PBKDF2, etc. | Aumenta el coste de los ataques de fuerza bruta |
| Uso de sal | Aplicar una sal única para cada usuario | Se genera un hash diferente incluso con la misma contraseña |
| Configuración del coste de la operación | Establecer un valor suficientemente alto teniendo en cuenta el rendimiento del servidor | Dificulta los ataques de conjetura masiva |
| Registro en el log | No dejar rastros de contraseñas ni tokens de restablecimiento en el log | Evita incidentes secundarios derivados de la filtración del log |
Los principales marcos web, como Ruby on Rails, Django o Laravel, ofrecen funciones para el almacenamiento seguro de contraseñas, pero el hecho de utilizar los valores predeterminados del marco no garantiza que se resuelvan automáticamente cuestiones como la recuperación de cuentas, la baja de usuarios o la política de tratamiento de datos personales.
Cinco políticas esenciales que la IA suele pasar por alto
1. Política de restablecimiento de contraseñas
Es inevitable que los usuarios olviden sus contraseñas. Si no se dispone de una función de restablecimiento de contraseñas, los administradores deben gestionar manualmente las solicitudes de recuperación de cuentas, lo que puede aumentar el riesgo de errores en la verificación de la identidad o de exposición de datos personales.
El restablecimiento de contraseña no consiste simplemente en «enviar un enlace por correo electrónico», sino que incluye la duración del token, la prevención de la reutilización y la protección contra la revelación de la existencia de la cuenta.
Políticas que hay que definir
- Plazo de validez del enlace de restablecimiento: se debe establecer un plazo breve, por ejemplo, de 15 o 30 minutos.
- Uso único: los enlaces que se hayan utilizado una vez deben invalidarse inmediatamente.
- Método de almacenamiento del token: se debe considerar la posibilidad de almacenar el token de restablecimiento en la base de datos en forma de hash, en lugar de guardar el texto original.
- Prevención de la revelación de la existencia de la cuenta: aunque se introduzca una dirección de correo electrónico inexistente, se mostrará la misma respuesta, del tipo «Si se trata de una dirección de correo ya registrada, le hemos enviado un correo de notificación».
- Limitación de solicitudes: si se producen solicitudes de restablecimiento excesivas desde la misma dirección de correo electrónico o IP, se aplicará una limitación de velocidad.
- Notificaciones: cuando se cambie la contraseña, se enviará una notificación al usuario informándole del cambio.
2. Política de modificación de la información de los usuarios
Los usuarios suelen querer modificar su correo electrónico, contraseña, nombre de usuario y configuración de notificaciones. En las funcionalidades mínimas creadas por IA, a menudo se omite la pantalla de modificación de la información de los usuarios.
En particular, el cambio de contraseña es una operación sensible desde el punto de vista de la seguridad. Si se permite el cambio basándose únicamente en la sesión de inicio de sesión, otra persona podría apropiarse de la cuenta mientras el usuario se ausenta de su puesto en una cafetería o en la oficina.
Políticas que hay que definir
- Se debe decidir si, al cambiar la contraseña, se solicita volver a introducir la contraseña actual.
- Decidir si se exigirá la verificación de la nueva dirección de correo electrónico al cambiarla.
- Decidir si se enviarán notificaciones tanto a la dirección de correo electrónico anterior como a la nueva tras el cambio.
- Decidir si se mantendrá la sesión de inicio de sesión existente tras un cambio de información importante o si se exigirá volver a iniciar sesión.
- Decidir si se registrará el historial de cambios en la información de usuario en un registro de auditoría.
3. Política de baja de usuarios y eliminación de datos
La baja de usuarios es una de las políticas más importantes en la práctica del servicio. Los usuarios deben poder darse de baja del servicio y solicitar la eliminación de sus datos personales o la suspensión de su tratamiento. Si no existe la función de baja o si se mantiene la posibilidad de iniciar sesión tras la baja, aumentan simultáneamente los riesgos legales y de confianza.
Sin embargo, eliminar físicamente todos los datos de forma inmediata no es siempre la solución adecuada. Los datos que tengan motivos legítimos para su conservación —como pagos, impuestos, gestión de litigios o prevención del uso fraudulento— pueden requerir su conservación durante un periodo determinado. Por ello, la política de baja debe distinguir «qué se elimina, qué se anonimiza y qué se conserva».
Comparación entre «Soft Delete» y «Hard Delete»
| Categoría | Significado | Ventajas | Precauciones |
|---|---|---|---|
| Eliminación definitiva (Hard Delete) | Eliminación física de los datos de la base de datos | Reduce el riesgo de que persistan datos personales | Si se eliminan los registros de pagos y disputas, pueden surgir problemas legales y contables |
| Eliminación blanda | Se marca como cuenta inactiva y se bloquea el inicio de sesión | Facilita la conservación de los registros de transacciones, las relaciones entre publicaciones y los registros de auditoría | Los datos personales pueden seguir estando presentes, por lo que es necesario anonimizar y restringir el acceso |
| Anonimización | Conversión o eliminación de identificadores (como el correo electrónico o el nombre) para dificultar su recuperación | Reduce el riesgo de identificación al tiempo que se conservan los registros estadísticos y de transacciones | Es necesario comprobar si el nivel alcanzado dificulta realmente la reidentificación |
Métodos de uso habitual en la práctica
- Se clasifican los estados de las cuentas en «activa», «suspendida» o «eliminada».
- Se impide el inicio de sesión inmediato en las cuentas dadas de baja.
- Se eliminan o se anonimizan los identificadores directos, como el correo electrónico, el nombre o el número de teléfono.
- El historial de pagos, los registros fiscales y los registros de respuesta ante usos fraudulentos se conservan de forma limitada, estableciendo una base jurídica y un plazo de conservación.
- En la política de tratamiento de datos personales se indican claramente los datos que se conservan tras la baja, así como la finalidad y el plazo de conservación.
4. Política de tratamiento de datos personales
Incluso si solo se recopila una dirección de correo electrónico, es necesario informar sobre el tratamiento de los datos personales. La política de tratamiento de datos personales no es «un documento que hay que publicar por cumplir», sino un documento oficial que explica qué información trata el servicio y con qué finalidad.
Copiar tal cual la política de tratamiento de datos personales de otra página web es arriesgado. Si se incluye información que en realidad no se recopila, o se omite información que sí se recopila, se producirá una discrepancia entre el documento y el servicio. Si se utiliza IA, primero hay que organizar los campos de la base de datos, el formulario de registro, los datos que se solicitan para el inicio de sesión a través de redes sociales, los datos de registro de actividad y los datos de integración de pagos, y, a partir de ahí, elaborar un borrador.
Puntos principales que deben incluirse en la política de tratamiento de datos personales
- Datos personales que se recogen: correo electrónico, nombre, apodo, identificador de inicio de sesión a través de redes sociales, información de pago, etc.
- Finalidad de la recogida y el uso: identificación de usuarios, inicio de sesión, atención al cliente, procesamiento de pagos, prevención del uso fraudulento, etc.
- Plazo de conservación y uso: hasta la baja del usuario, plazo de conservación establecido por la legislación aplicable, etc.
- Procedimientos y métodos de destrucción: eliminación de la base de datos, anonimización, periodicidad de destrucción de las copias de seguridad, etc.
- Cesión a terceros: en caso de que se produzcan cesiones externas para publicidad, análisis, pagos, envíos, etc.
- Subcontratación del tratamiento: nube, envío de correos electrónicos, gestión de pagos, herramientas de atención al cliente, etc.
- Derechos de los usuarios y cómo ejercerlos: solicitud de acceso, rectificación, supresión y suspensión del tratamiento, etc.
- Responsable de la protección de datos o canal de contacto
Diferencias entre la política de tratamiento de datos personales y las condiciones de uso
Ambos documentos son importantes, pero tienen funciones diferentes.
| Documento | Función principal | Riesgos en caso de ausencia o deficiencia |
|---|---|---|
| Política de tratamiento de datos personales | Explica para qué y cómo se tratan los datos personales | Incumplimiento de la obligación de notificación y divulgación prevista en la Ley de Protección de Datos Personales; pérdida de confianza de los usuarios |
| Condiciones de uso | Establece las condiciones de uso del servicio y la base jurídica para las medidas del operador | Falta de fundamento para restringir cuentas que cometan abusos, fraudes, insultos o envíen spam |
La política de tratamiento de datos personales se asemeja más a un manual de tratamiento de datos, mientras que las condiciones de uso se asemejan más a las condiciones contractuales entre el usuario y el servicio. No basta con tener solo uno de los dos.
5. Condiciones de uso y política de sanciones
Si no existen condiciones de uso, la base para suspender cuentas, eliminar publicaciones o restringir el uso se debilita, incluso si los usuarios malintencionados abusan del servicio. En particular, los servicios en los que los usuarios dejan un rastro de su actividad, como las comunidades, los mercados, el SaaS y las plataformas de contenido, requieren necesariamente condiciones de uso y políticas de funcionamiento.
Contenidos principales que deben incluirse en las condiciones de uso
- Condiciones de registro y responsabilidad en la gestión de la cuenta
- Conductas prohibidas: actos ilegales, fraude, spam, uso indebido de rastreo web, lenguaje soez, violación de los derechos de terceros, etc.
- Motivos y procedimientos para la restricción del uso del servicio
- Criterios de tratamiento de las publicaciones o del contenido generado por los usuarios
- Si hay servicios de pago, condiciones de pago, reembolso y cancelación
- Información sobre cambios, interrupciones y finalización del servicio
- Limitación de responsabilidad y procedimientos de resolución de conflictos
En la pantalla de registro debe incluirse claramente el procedimiento de aceptación de la política de tratamiento de datos personales y de las condiciones de uso. En caso de que se mezclen consentimientos opcionales y obligatorios, el usuario debe poder distinguirlos y seleccionarlos por separado.
El uso del inicio de sesión a través de redes sociales no elimina la necesidad de contar con una política
El uso de el inicio de sesión a través de redes sociales como Google, Kakao o Apple reduce la carga que suponen el almacenamiento de contraseñas propias y las funciones de recuperación de contraseñas. Sin embargo, esto no significa que la política de registro deje de ser necesaria.
Incluso con el inicio de sesión a través de redes sociales, siguen siendo necesarios los siguientes elementos:
- Especificar qué información se recibe de cada proveedor de inicio de sesión a través de redes sociales.
- Distinguir entre la desconexión de la cuenta de la red social y la baja del servicio.
- Reflejar en la política de tratamiento de datos personales los datos que se recogen, como el correo electrónico, la imagen de perfil y el identificador único.
- Se debe obtener por separado el consentimiento a las condiciones de uso del propio servicio.
- El operador del servicio debe establecer las políticas de suspensión de cuentas, baja y conservación de datos.
Principios de seguridad a la hora de crear la página de administración
Cuando se registran usuarios, también se necesita una página de administración. Sin embargo, la página de administración es un área de alto riesgo en la que es fácil que se produzcan incidentes de fuga de datos personales. Debe evitarse el diseño que permita «al administrador ver toda la información».
Puntos de revisión de la página de administración
| Elemento | Política recomendada |
|---|---|
| Permisos de acceso | Otorgar solo los permisos mínimos según el rol de administrador |
| Información mostrada | Mostrar únicamente la información necesaria, como el correo electrónico, el estado de registro y el estado de sanciones |
| Información sensible | No mostrar contraseñas, tokens ni información completa de pago |
| Función de sanciones | Registrar los motivos de suspensión relacionados con las acciones prohibidas en las condiciones de uso |
| Registro de auditoría | Registrar quién, cuándo y qué información de los usuarios ha consultado o modificado |
| Autenticación de administradores | Aplicar contraseñas seguras y autenticación multifactorial |
Estructura recomendada para las peticiones a la IA
A la IA no hay que transmitirle «funcionalidades», sino «políticas». El uso de la siguiente estructura permite reducir las omisiones.
Elementos que deben incluirse en la solicitud
- Pila tecnológica: por ejemplo, Ruby on Rails, Next.js, Django, Laravel, etc.
- Métodos de registro: correo electrónico y contraseña, inicio de sesión a través de redes sociales, sistema de invitaciones, etc.
- Política de autenticación: verificación por correo electrónico, límite de intentos fallidos de inicio de sesión, caducidad de la sesión, uso de autenticación en dos pasos
- Política de contraseñas: método de hash, procedimiento de cambio, periodo de validez del enlace de restablecimiento
- Política de baja: eliminación, anonimización, datos conservados, si se permite volver a registrarse
- Documentación legal: criterios para la elaboración de borradores de la política de tratamiento de datos personales y las condiciones de uso
- Política de administración: consulta de usuarios, suspensión, registros de auditoría, principio de privilegios mínimos
- Gestión de excepciones: direcciones de correo electrónico ya registradas, reinscripción de cuentas dadas de baja, inicio de sesión en cuentas suspendidas, etc.
Ejemplo de prompt
Implementa la función de registro e inicio de sesión mediante correo electrónico y contraseña.
Almacena la contraseña como un hash unidireccional seguro y no guardes el texto sin cifrar.
Haz que el enlace para restablecer la contraseña solo sea válido durante 30 minutos y se elimine tras un único uso.
Cuando se cambie la contraseña, solicita que se vuelva a introducir la contraseña actual.
Al darse de baja, bloquea inmediatamente el acceso; anonimiza el correo electrónico y el nombre, pero diseña el sistema de modo que el historial de pagos se pueda conservar por separado, teniendo en cuenta los requisitos legales de conservación.
Elabora una lista de los elementos que deben incluirse en el borrador de la política de tratamiento de datos personales y de las condiciones de uso, basándote en los campos de la base de datos que se recopilen.
Incluye en la pantalla de registro una casilla de verificación para aceptar los términos y condiciones obligatorios.
En la página de administración, sigue el principio de privilegios mínimos para que solo se vean el correo electrónico, el estado de registro y el estado de sanciones, y registra todas las consultas y modificaciones en un registro de auditoría.
Antes de la implementación, si hay alguna política que yo no haya establecido y que requiera una decisión, pregúntame primero.
La última frase, «Si antes de la implementación hay alguna política que yo no haya establecido y que requiera una decisión, pregúntame primero», es muy importante. Al incluir esta frase, la IA deja de ser una mera herramienta de generación de código para convertirse en un planificador auxiliar que detecta omisiones en las políticas.
Lista de comprobación previa a la implementación
Antes de aplicarlo al servicio real, debes comprobar los siguientes puntos:
- ¿Se almacenan las contraseñas en texto plano?
- ¿El enlace para restablecer la contraseña tiene un plazo de validez corto y está limitado a un solo uso?
- ¿La pantalla de solicitud de restablecimiento revela si la cuenta existe o no?
- ¿Se solicita la confirmación de la contraseña actual al cambiarla?
- ¿Existe un procedimiento de verificación del nuevo correo electrónico al cambiarlo?
- ¿Existe realmente la función de baja de la cuenta y se bloquea el acceso tras la baja?
- ¿Se distingue entre los datos que se eliminan, se anonimizan o se conservan tras la baja?
- ¿Coincide la política de tratamiento de datos personales con los datos que se recogen realmente?
- ¿Incluyen las condiciones de uso las acciones prohibidas y los motivos para la imposición de sanciones a las cuentas?
- ¿Existe un procedimiento de aceptación de las condiciones de uso y de la política de tratamiento de datos personales al registrarse?
- ¿Está diseñada la página de administración siguiendo el principio de privilegios mínimos?
- ¿Se registran en los registros los accesos de los administradores y el historial de consulta y modificación de datos personales?
- ¿No quedan contraseñas, tokens ni información sensible en los registros ni en las herramientas de seguimiento de errores?
- En caso de utilizar el inicio de sesión a través de redes sociales, ¿se reflejan en la documentación la información que se recibe y la política de desvinculación?
Conclusión
La capacidad de desarrollo de productos en la era de la IA no se determina únicamente por la habilidad de escribir código rápidamente. Para operar un servicio real, es necesario definir de antemano la seguridad de la autenticación, la protección de los datos personales, la baja y la conservación de datos, los términos y condiciones, los privilegios de los administradores y las situaciones excepcionales.
La IA acelera la implementación, pero es el operador quien debe juzgar qué políticas son seguras, legales y adecuadas para el servicio. Al crear la función de registro de usuarios, antes de solicitar código a la IA hay que definir primero «qué se recopila, cómo se protege, cuándo se elimina y en qué casos se aplican sanciones».