Pruebas de seguridad: conceptos básicos del protocolo HTTP

Comprender el protocolo es muy importante para comprender bien las pruebas de seguridad. Podrá apreciar la importancia del protocolo cuando interceptamos los paquetes de datos entre el servidor web y el cliente.

Protocolo HTTP

El Protocolo de transferencia de hipertexto (HTTP) es un protocolo a nivel de aplicación para sistemas de información hipermedia distribuidos y colaborativos. Ésta es la base para la comunicación de datos para la World Wide Web desde 1990. HTTP es un protocolo genérico y sin estado que se puede utilizar para otros fines, además de utilizar la extensión de sus métodos de solicitud, códigos de error y encabezados.

Básicamente, HTTP es un protocolo de comunicación basado en TCP / IP, que se utiliza para entregar datos como archivos HTML, archivos de imagen, resultados de consultas, etc. a través de la web. Proporciona una forma estandarizada para que las computadoras se comuniquen entre sí. La especificación HTTP especifica cómo se envían los datos solicitados por los clientes al servidor y cómo los servidores responden a estas solicitudes.

Caracteristicas basicas

Existen las siguientes tres características básicas que hacen de HTTP un protocolo simple pero poderoso:

  • HTTP is connectionless- El cliente HTTP, es decir, el navegador inicia una solicitud HTTP. Después de realizar una solicitud, el cliente se desconecta del servidor y espera una respuesta. El servidor procesa la solicitud y restablece la conexión con el cliente para devolver la respuesta.

  • HTTP is media independent- Cualquier tipo de datos se pueden enviar por HTTP siempre que tanto el cliente como el servidor sepan cómo manejar el contenido de los datos. Esto es necesario para que el cliente y el servidor especifiquen el tipo de contenido utilizando el tipo MIME apropiado.

  • HTTP is stateless- HTTP no tiene conexión y esto es un resultado directo de que HTTP es un protocolo sin estado. El servidor y el cliente se conocen entre sí solo durante una solicitud actual. Después, ambos se olvidan el uno del otro. Debido a esta naturaleza del protocolo, ni el cliente ni el navegador pueden retener información entre diferentes solicitudes en las páginas web.

HTTP / 1.0 usa una nueva conexión para cada intercambio de solicitud / respuesta, mientras que la conexión HTTP / 1.1 se puede usar para uno o más intercambios de solicitud / respuesta.

Arquitectura

El siguiente diagrama muestra una arquitectura muy básica de una aplicación web y describe dónde reside HTTP:

El protocolo HTTP es un protocolo de solicitud / respuesta basado en la arquitectura cliente / servidor donde el navegador web, los robots y los motores de búsqueda, etc., actúan como clientes HTTP y el servidor web actúa como servidor.

  • Client - El cliente HTTP envía una solicitud al servidor en forma de método de solicitud, URI y versión de protocolo, seguida de un mensaje similar a MIME que contiene modificadores de solicitud, información del cliente y posible contenido del cuerpo a través de una conexión TCP / IP.

  • Server - El servidor HTTP responde con una línea de estado, que incluye la versión de protocolo del mensaje y un código de éxito o error, seguido de un mensaje similar a MIME que contiene información del servidor, metainformación de la entidad y posible contenido del cuerpo de la entidad.

HTTP - Desventajas

  • HTTP no es un protocolo completamente seguro.

  • HTTP usa el puerto 80 como puerto predeterminado para la comunicación.

  • HTTP opera en la capa de aplicación. Necesita crear múltiples conexiones para la transferencia de datos, lo que aumenta los gastos generales de administración.

  • No se requieren certificados digitales / cifrados para usar HTTP.

Detalles del protocolo Http

Para comprender el protocolo HTTP en profundidad, haga clic en cada uno de los enlaces siguientes.