¿Qué significa representación canónica y su potencial vulnerabilidad a los sitios web

StackOverflow https://stackoverflow.com/questions/1167371

  •  19-09-2019
  •  | 
  •  

Pregunta

He buscado en Google para un sentido de la representación canónica y subió los documentos que son totalmente demasiado críptica. ¿Alguien puede proporcionar una explicación rápida de la representación canónica y también lo son algunas vulnerabilidades típicas en los sitios web a los ataques representación canónica?

¿Fue útil?

Solución

Canonicalisation es el proceso mediante el cual se toma una entrada, como por ejemplo un nombre de archivo o una cadena, y convertirla en una representación estándar.

Por ejemplo, si su aplicación web sólo permite el acceso a los archivos en C: \ webs \ midominio entonces típicamente cualquier entrada en referencia a los nombres de archivo se canonicalised ser una ruta física, directa, en lugar de uno que utiliza rutas relativas. Si quisieras abrir C: \ webs \ dominio \ ejemplo \ example.txt una entrada en función de que pueden ser ejemplo \ example.txt. Es difícil averiguar si esto se sale de los límites de su sitio web, por lo que la función de canonicalisation se vería en el directorio de la aplicación y cambiar el camino relativo a una física, C: \ webs \ dominio \ ejemplo \ example.txt. Esto es obviamente más fácil comprobar que sólo tiene que hacer una comparación de cadenas en el inicio de la ruta del archivo.

Para las entradas HTML se toma como entradas y 20% canonicalise les unencoding, por lo que esto se convertiría en un espacio. Esta es una buena idea ya que el número de diferentes formas de codificación son numerosos, canonicalisation significa que comprobaría la cadena descodificada solamente, en lugar de tratar de cubrir todas las variaciones de codificación.

Básicamente, usted está tomando de entrada que es lógicamente equivalente y convirtiéndolos a un formato estándar que luego se puede actuar.

Otros consejos

La siguiente explicación es de la "seguridad de las aplicaciones y Desarrollo STIG" que se encuentra aquí :

  

3,11 representación canónica   surgen problemas de representación canónica   cuando el nombre de un recurso se utiliza para   control de acceso a los recursos. Existen   múltiples métodos de representación de   nombres de recursos en un sistema informático.   Una aplicación confiar únicamente en una   nombre de recurso para controlar el acceso de mayo   incorrectamente realizar un control de acceso   decisión si se especifica el nombre de   un formato no reconocido.

     

Por ejemplo,   en Windows, puede ser notepad.exe   representado por la siguiente archivo y   nombre de la ruta combinaciones:

     

C: \ Windows \ System32 \ notepad.exe

     

% SystemRoot% \ System32 \ notepad.exe

     

\ \ C: \ Windows \ System32 \ notepad.exe

     

\ Host \ c $ \ Windows \ system32 \ notepad.exe

     

Una aplicación que intenta restringir   el acceso al archivo basado únicamente en el   presentar ruta y el nombre de manera inadecuada puede   conceder o denegar el acceso. El mismo problema   puede aplicarse a otros recursos con nombre de   un sistema, tal como un hardware y   soft-enlaces, URL, tubería, compartir   directorio, nombre del dispositivo, o dentro de los datos   archivos, si la codificación alternativo   mecanismos se utilizan con los datos.

     

La   siguientes elementos pueden indicar el potencial   cuestiones representación canónica en una   aplicación:

     

• El control de acceso   decisiones sobre la base de un nombre de recurso.

     

• Si no se reduce a un nombre de recurso   su forma canónica antes de su uso.

     

En   Para reducir al mínimo canónica   cuestiones de representación en el   aplicación, aplicar el siguiente   procedimientos:

     

• No confiar únicamente en   nombres de recursos para controlar el acceso.

     

• Si   el uso de nombres de recursos para controlar   acceso, validar los nombres de asegurar   que están en el formato adecuado; rechazar   todos los nombres de no ajustarse al bien conocido   criterios.

     

• Uso operativo basado en el sistema   mecanismos de control de acceso, tales como   permisos y ACL.

Canonicalisation significa reducir los datos recibidos a su forma más simple, se utiliza para la validación de entrada.

Canonical (creo) significa que la consola de entrada es "comportamiento típico". No canónica significa que la entrada no es estándar y no requiere conocimientos especiales, tales como el comportamiento de entrada de "vi" en Linux.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top