Estoy leyendo la Lista de verificación de prácticas de codificación segura de OWASP y en su sección "Validación de entrada" tienen un elemento que dice:
Si se debe permitir el ingreso de caracteres potencialmente peligrosos (
<>"'%()&+\'\"
), asegúrese de implementar controles adicionales como la codificación de salida. Utilice la canonicalización para abordar la codificación doble u otras formas de ataques de ofuscación.
- ¿Qué es la "codificación de salida", y alguien puede proporcionar un ejemplo concreto de cómo una rutina de validación podría utilizarlo?
- ¿Qué es la "codificación doble" y por qué es un "ataque de ofuscación"?
- ¿Qué es la "canonicalización" y por qué impide la doble codificación?
Para el tercero, encontré una definición bastante vaga para canonicalización proporcionada por OWASP: La reducción de varias codificaciones de datos a una forma única y simple. Pero esa definición realmente no me ayuda a entender lo que están hablando.
Soy fuerte con Java y Python, pero podría seguir un ejemplo en cualquier idioma. Solo estoy tratando de visualizar de qué están hablando aquí y me está costando mucho ver el "bosque a través de los árboles". Gracias de antemano!