Home Projects Portfolio Dashboard Export PDF Log in

Fortaleciendo la integridad: Resolviendo hallazgos críticos en TuTiendaWeb

El Desafío

En el proyecto TuTiendaWeb, tras concluir las fases iniciales de testing, detectamos una serie de vulnerabilidades y problemas de consistencia que afectaban la integridad de los datos y la experiencia de usuario. Estos hallazgos, clasificados con severidad Alta y Media, requerían una intervención directa en nuestras reglas de validación y flujos de datos para asegurar un entorno robusto antes de avanzar a etapas de mayor complejidad.

El Enfoque

Nuestra estrategia se centró en unificar las reglas de negocio entre el frontend y el backend, además de implementar salvaguardas para prevenir envíos duplicados.

Estandarización de Esquemas con Zod

Detectamos una "divergencia silenciosa" donde las validaciones de cliente no coincidían con las del servidor, especialmente en campos como password y displayName. Centralizamos estas reglas usando Zod para garantizar que la fuente de la verdad fuera única:

import { z } from 'zod';

export const userRegistrationSchema = z.object({
  password: z.string().min(8).regex(/[A-Z]/, 'Debe incluir una mayúscula').regex(/[0-9]/, 'Debe incluir un número'),
  displayName: z.string().min(3).max(50)
});

Prevención de Doble Envío

Para evitar el envío múltiple de formularios, implementamos un mecanismo de bloqueo en la interfaz mediante el estado de carga y restricciones a nivel de servidor:

<button 
  disabled={isPending} 
  onClick={handleSubmit}>
  {isPending ? 'Procesando...' : 'Guardar'}
</button>

Refuerzo en Seguridad de Firestore

Corregimos la brecha de seguridad donde el storeId no estaba correctamente vinculado al path, asegurando que los usuarios solo operen sobre sus propios datos mediante reglas específicas en Firestore:

allow update: if request.resource.data.storeId == resource.data.storeId;

Resultados Obtenidos

Hallazgo Impacto Resolución
Validación de Credenciales Alta Esquema único Zod
Doble-submit Alta Guardias de UI/Server
Validación noValidate Media Mejora en mensajes Zod
Seguridad de Path Media Reglas Firestore

Además, resolvimos un problema de compatibilidad con Node 24.x al actualizar Playwright a una versión que gestiona correctamente las condiciones de resolución, permitiendo que nuestra suite de pruebas E2E se ejecute sin interrupciones.

Lección Clave

La integridad de los datos depende de que el contrato entre el cliente y el servidor sea idéntico. Centralizar las reglas de validación en una biblioteca como Zod no es solo una buena práctica, es la mejor defensa contra comportamientos inconsistentes y brechas de seguridad. Asegúrate de que tu capa de validación se comparta entre ambos entornos antes de finalizar cualquier funcionalidad crítica.


Generated with Gitvlg.com

Fortaleciendo la integridad: Resolviendo hallazgos críticos en TuTiendaWeb
MAXIMILIANO EXEQUIEL ARAMAYO LAZO

MAXIMILIANO EXEQUIEL ARAMAYO LAZO

Author

Share: