Busqué en Google un significado de representación canónica y encontré documentos que son demasiado crípticos. ¿Alguien puede proporcionar una explicación rápida de la representación canónica y también cuáles son algunas de las vulnerabilidades típicas de los sitios web ante los ataques de representación canónica?Qué significa Representación canónica y su vulnerabilidad potencial a los sitios web
Respuesta
Canonicalización es el proceso mediante el cual se toma una entrada, como un nombre de archivo o una cadena, y se convierte en una representación estándar.
Por ejemplo, si su aplicación web solo permite el acceso a archivos en C: \ sites \ mydomain, normalmente cualquier entrada que haga referencia a nombres de archivos se canonicaliza como una ruta física directa, en lugar de una que usa rutas relativas. Si desea abrir C: \ sites \ mydomain \ example \ example.txt, una entrada en esa función puede ser example \ example.txt. Es difícil determinar si esto va más allá de los límites de su sitio web, por lo que la función de canonización mirará el directorio de la aplicación y cambiará esa ruta relativa en una ruta física, C: \ sites \ mydomain \ example \ example.txt. Obviamente, es más fácil de verificar ya que simplemente hace una comparación de cadenas al comienzo de la ruta del archivo.
Para entradas HTML, toma entradas como% 20 y las canonicaliza mediante la descodificación, por lo que esto se convertiría en un espacio. Esta es una buena idea, ya que la cantidad de formas diferentes de codificación es numerosa, la canonización significa que solo verificará la cadena descodificada, en lugar de tratar de cubrir todas las variaciones de codificación.
Básicamente está tomando una entrada que es lógicamente equivalente y las convierte a un formulario estándar sobre el que puede actuar.
potencialmente en un campo de entrada podría intentar y hacer un ataque de inyección sql o XSS posible para eludir la sanitización de cadena normal? – predhme
El saneamiento es diferente. En general, un ataque de inyección SQL no va a usar codificación, por lo que no es un problema de canonización. XSS puede ser, depende de lo que hagas. Si está codificando toda la entrada antes de enviarla, entonces no, no lo está. Sin embargo, si intenta hacer una lista blanca, o peor aún una lista negra de ciertas partes de una cadena, primero canonicalizar la cadena primero porque, por ejemplo,
Canonical (creo) significa que la entrada de la consola es "comportamiento típico". No canónico significa que la entrada no es estándar y requiere un conocimiento especial, como el comportamiento de entrada de "vi" en Linux.
Fuente
2009-07-22 18:54:43 djangofan
Pero, ¿cómo se aplica eso a los sitios web y ser vulnerable? – predhme
Consulte la respuesta de blowdart para obtener una definición de canonical –
Mi respuesta no entra en conflicto en absoluto con la respuesta de Blowdarts, excepto que podría explicarlo en una oración. Para los programadores, la eficiencia es la clave. – djangofan
La siguiente explicación es de la "seguridad de las aplicaciones y Desarrollo STIG" encontrado here:
Fuente
2011-02-04 18:30:46 CrazyPyro
Canonicalización significa reducir los datos recibidos a su forma más simple, se utiliza para la validación de entrada.
Fuente
2014-04-10 18:35:02 germangti