validación de entrada
2 artículos con esta etiqueta
Deserialización insegura: el riesgo de dejar que los datos externos elijan el tipo de objeto y cómo evitarlo
El peligro de la deserialización no es que lleguen valores malos, sino que algunos formatos dejan que los datos externos decidan qué tipo de objeto se construye. Por eso el daño no se queda en datos corruptos: OWASP enumera denegación de servicio, elusión del control de acceso y ejecución remota de código. Dos defensas: pasar a un formato de datos puro para que nada elija tipos por ti, y firmar los mensajes serializados para no restaurar nunca los que no estén firmados. Y algunos mecanismos no se pueden hacer seguros con configuración; la única solución es no usarlos.
Contaminación de prototipos en Node.js: lo que el runtime no cubre y cómo defenderte en tu propio código
La contaminación de prototipos (prototype pollution) ocurre cuando una clave especial de una entrada externa llega a los prototipos integrados de JavaScript, normalmente a través de un merge recursivo. Dos consecuencias: aparecen por todas partes propiedades que nunca fijaste (rompiendo comprobaciones de autorización y de opciones), o desaparecen métodos integrados y la aplicación se cae en un punto sin relación. Lo que más importa es de quién es la responsabilidad: Node.js declara que no es una vulnerabilidad del núcleo de Node.js y que las defensas corresponden a la aplicación y a las dependencias. Esperar una actualización no lo arreglará.