sábado, 15 de septiembre de 2012

Capturar y analizar código HTTP con Fiddler

Hay varias herramientas como Fiddler, WebSphere, Cain (...) que nos permiten interceptar el tráfico entre aplicaciones cliente y servidor por protocolo http. Disponer de esta información puede ser útil en varios contextos. Por ejemplo, estamos desarrollando un servicio web que ha de ser totalmente interoperable con otras plataformas cliente y alguno de ellos está teniendo problemas de comunicación soap con nuestro servicio. Nos interesa comparar el mensaje en un cliente que funciona y en otro que no funciona para analizar que parte del mensaje hace que nuestro servicio lo rechace.

En este artículo veremos como configurar Fiddler en nuestra máquina cliente con el propósito de obtener toda la información que intercambia el navegador con el servidor web por puerto http y https (ssl).

Vamos a la página de descarga Fiddler, descargamos e instalamos. En el ejemplo usamos la versión v2.4.1. Una vez instalado, no haría falta configurar nada para empezar a usarlo. Al ejecutar Fiddler se nos abrirá una pantalla como esta.


Cada vez que desde un navegador hagamos una petición a una URL por puerto http /https quedará registrada como una nueva fila en el apartado Web Sessions que está situado en la parte izquierda de la pantalla.

Una vez empezamos a tener entradas, nos situamos en la fila que nos interesa y en la parte derecha seleccionamos la pestaña Inspectors. El apartado Insepectors se divide en dos partes (request y response) que nos permiten analizar las cabeceras y contenido del mensaje de petición cliente y su respectiva respuesta del servidor.

Es importante saber que Fiddler por defecto no desencripta el tráfico ssl por tanto si necesitamos capturar por puerto https tendremos que habilitar la opción. Nos situamos en el menú Tools/Fiddler Options. En la pestaña HTTPS marcamos las casillas que se muestran en la imagen.


Si es la primera vez que configuramos esta opción en la sesión de Windows, nos preguntará a cerca de si queremos almacenar el certificado de Fiddler en el CA de confianza de Windows. En otras palabras estamos permitiendo a Fiddler que suplante la identidad de los servidores donde están ubicadas URL que visitamos. Ya es eso lo que necesitamos en este caso por tanto respondemos "Sí" a esta y a la siguiente pregunta.


Por último en el escenario del ejemplo podría darse el caso que nuestro servicio sólo acepte peticiones autentificadas con certificado cliente. En este caso es necesario disponer del certificado cliente con claves privadas correctamente instalado en el almacén correspondiente. Si disponemos del certificado se trataría copiar la parte pública .cer en la ruta %USERPROFILE%\My Documents\Fiddler2\ClientCertificate.cer. De este modo Fiddler usará la parte pública de nuestro certificado cliente como puntero para acceder a las claves privadas que están almacenadas en Windows y podrá firmar la petición como cliente. Dentro de areaTIC puedes encontrar otros artículos interesantes, no dudes en consultar nuestro archivo.


No hay comentarios:

Publicar un comentario