🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónValidación sintáctica y semántica
5 tareas · 35 min · Principiante
Validar no es buscar palabras peligrosas: es decidir qué forma y qué sentido tiene un dato correcto y rechazar todo lo demás. La Red de Bibliotecas Tinajacoa te entrega el alta de socios, la reserva de salas, sus reglas de servicio y dos semanas de registros. Hay personas que no pudieron inscribirse con su nombre real y reservas que ninguna sede puede cumplir. Se lee la validación como quien la va a reescribir.
Objetivo de la sala
Validar no es buscar palabras peligrosas: es decidir qué forma y qué sentido tiene un dato correcto y rechazar todo lo demás. La Red de Bibliotecas Tinajacoa te entrega el alta de socios, la reserva de salas, sus reglas de servicio y dos semanas de registros. Hay personas que no pudieron inscribirse con su nombre real y reservas que ninguna sede puede cumplir. Se lee la validación como quien la va a reescribir.Validar una entrada es comprobar, en el servidor y antes de usarla, que cumple lo que la aplicación espera. Esa comprobación tiene dos capas. La sintáctica mira la forma: tipo, longitud, juego de caracteres, formato (una fecha que se pueda leer como fecha, un documento hecho solo de dígitos). La semántica mira el sentido en este negocio: que la fecha de fin vaya después de la de inicio, que la sala exista, que la reserva no sea de un día que ya pasó. La hoja de referencia de validación de entrada de OWASP las separa así y pide las dos.
Un dato puede pasar la primera y fallar la segunda. «2026-11-06 11:00» es una fecha perfecta; como fin de una reserva que empieza a las 16:00 del mismo día no tiene sentido. Las validaciones que solo miran la forma dejan entrar datos bien escritos que rompen el negocio, y muchas veces es justo ahí donde vive el fraude o el error que nadie ve.
Responde para continuar
Una tienda acepta en el carrito una cantidad de -3 unidades porque el campo solo comprueba que sea un número entero. ¿Qué capa de validación falta?
Ver pista de ayuda
El valor está bien escrito como entero; lo que falla es lo que significa.
Abre el laboratorio y lee ReservaController.php en la carpeta tinajacoa-registro. El controlador comprueba que inicio y fin tengan el formato AAAA-MM-DD HH:MM y que la sala no venga vacía, y guarda. Cruza eso con reglas-del-servicio.txt, donde la coordinación dejó por escrito qué es una reserva válida, y revisa reservas-guardadas.csv fila por fila.
Responde para continuar
¿Qué reserva quedó guardada con una hora de fin anterior a la de inicio? Escribe su código.
Ver pista de ayuda
Compara las columnas inicio y fin de cada fila del mismo día.
Ahora aplica todas las reglas del servicio a las diez reservas: salas que existen, fin después del inicio, duración máxima, horario de las sedes y fecha que no haya pasado en el momento de crearla (la columna creada). Una reserva cuenta una sola vez aunque rompa más de una regla.
Responde para continuar
¿Cuántas reservas guardadas rompen al menos una regla del servicio?
Ver pista de ayuda
Para la fecha pasada compara el inicio con la columna creada, no con hoy.
RegistroController.php intenta frenar ataques con una lista de palabras prohibidas en el nombre y en el club. Esa lista no protege la base, porque la consulta ya va parametrizada y eso es lo que de verdad separa datos de instrucciones (la debilidad de fondo, CWE-20, es la validación ausente o incorrecta, no la falta de palabras prohibidas). Lo que sí hace es rechazar nombres legítimos y empujar a la gente a escribir su nombre mal para poder inscribirse. Lee rechazos-registro.log y busca a quien le pasó eso con un apellido real.
Responde para continuar
¿Qué solicitud de alta se rechazó por el apóstrofo de un apellido real? Escribe su código de solicitud.
Ver pista de ayuda
Mira qué palabra de la lista disparó cada rechazo y qué hizo la persona dos minutos después.
La alternativa a la lista negada es la lista de permitidos: describir lo que sí vale para cada campo y rechazar el resto. Para un municipio, una lista cerrada; para un documento, una expresión con longitud exacta; para un nombre, las letras de cualquier alfabeto con espacios, apóstrofos y guiones; para una reserva, las reglas del negocio en el servidor.
Responde para continuar
¿Qué cambio corrige a la vez los rechazos injustos y las reservas imposibles de Tinajacoa?
Ver pista de ayuda
Una lista de palabras malas nunca está completa y siempre atrapa a alguien inocente.
Whoami-Labs Pro
Whoami-Labs Pro utiliza cookies
Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.