El método
HTTP TRACE básicamente responde la solicitud, junto con todos los encabezados en respuesta. Encabezado de la cookie también se incluirá en la respuesta. Las cookies de sesión deben tener el indicador enlace para prevenir ataques de secuestro de sesión . Esta bandera bloquea el acceso al valor de cookie de Javascript. Básicamente, esto garantiza que incluso si el atacante explotará una falla XSS en un sitio web, no sabrá el valor de la cookie de la sesión, por lo que no podrá piratearlo.
Pero si un servidor de aplicaciones web tiene habilitado TRACE, el atacante puede enviarlo, por ejemplo. XMLHttprequest (AJAX) al servidor de destino. El navegador adjuntará las cookies a la solicitud, el servidor las responderá y el código JS del atacante obtendrá la respuesta y podrá secuestrar la sesión.
La vulnerabilidad se llama Rastreo entre sitios y se ha descrito en este documento técnico .
Sin embargo, desde 2003, cuando se descubrió esta vulnerabilidad, muchos navegadores simplemente rechazaron el envío de solicitudes con el método TRACE. También la especificación para XMLHttpRequest no permite el método TRACE ahora. No tengo ningún resultado concreto sobre qué navegador me permite enviar TRACE ahora mismo, la coincidencia más cercana que encontré es este artículo .
Pero aún así, es probable que haya algunos navegadores antiguos y otros complementos como Flash, Silverlight, Java que a menudo reciben cookies del navegador y pueden usarlos para enviar TRACE. Por lo tanto, deshabilitarlo es ahora la única opción para asegurarse de que no sea vulnerable al rastreo entre sitios. Y también es fácil: solo use TraceEnable off en Apache .