Test di sicurezza - Nozioni di base sul protocollo HTTP

Comprendere il protocollo è molto importante per avere una buona conoscenza dei test di sicurezza. Sarai in grado di apprezzare l'importanza del protocollo quando intercettiamo i dati del pacchetto tra il server web e il client.

Protocollo HTTP

Il protocollo HTTP (Hypertext Transfer Protocol) è un protocollo a livello di applicazione per sistemi informativi distribuiti, collaborativi e ipermediali. Questa è la base per la comunicazione dei dati per il World Wide Web dal 1990. HTTP è un protocollo generico e senza stato che può essere utilizzato anche per altri scopi utilizzando l'estensione dei suoi metodi di richiesta, codici di errore e intestazioni.

Fondamentalmente, HTTP è un protocollo di comunicazione basato su TCP / IP, che viene utilizzato per fornire dati come file HTML, file immagine, risultati di query ecc. Sul web. Fornisce un modo standardizzato per i computer di comunicare tra loro. La specifica HTTP specifica come i dati richiesti dai client vengono inviati al server e come i server rispondono a queste richieste.

Caratteristiche di base

Ci sono le seguenti tre caratteristiche di base che rendono HTTP un protocollo semplice ma potente:

  • HTTP is connectionless- Il client HTTP, cioè il browser avvia una richiesta HTTP. Dopo aver effettuato una richiesta, il client si disconnette dal server e attende una risposta. Il server elabora la richiesta e ristabilisce la connessione con il client per inviare la risposta.

  • HTTP is media independent- Qualsiasi tipo di dati può essere inviato tramite HTTP purché sia ​​il client che il server sappiano come gestire il contenuto dei dati. Ciò è necessario affinché il client e il server specifichino il tipo di contenuto utilizzando il tipo MIME appropriato.

  • HTTP is stateless- HTTP è un protocollo senza connessione e questo è un risultato diretto che HTTP è un protocollo senza stato. Il server e il client si conoscono solo durante una richiesta corrente. Successivamente, entrambi si dimenticano l'uno dell'altro. A causa di questa natura del protocollo, né il client né il browser possono conservare le informazioni tra le diverse richieste nelle pagine web.

HTTP / 1.0 utilizza una nuova connessione per ogni scambio di richiesta / risposta mentre la connessione HTTP / 1.1 può essere utilizzata per uno o più scambi di richiesta / risposta.

Architettura

Il diagramma seguente mostra un'architettura di base di un'applicazione web e mostra dove risiede HTTP:

Il protocollo HTTP è un protocollo di richiesta / risposta basato sull'architettura client / server in cui browser web, robot e motori di ricerca ecc. Agiscono come client HTTP e il server web funge da server.

  • Client - Il client HTTP invia una richiesta al server sotto forma di un metodo di richiesta, URI e versione del protocollo, seguito da un messaggio simile a MIME contenente modificatori di richiesta, informazioni sul client e possibile contenuto del corpo su una connessione TCP / IP.

  • Server - Il server HTTP risponde con una riga di stato, inclusa la versione del protocollo del messaggio e un codice di successo o di errore, seguito da un messaggio simile a MIME contenente informazioni sul server, meta informazioni dell'entità e possibile contenuto del corpo dell'entità.

HTTP: svantaggi

  • HTTP non è un protocollo completamente protetto.

  • HTTP utilizza la porta 80 come porta predefinita per la comunicazione.

  • HTTP opera a livello dell'applicazione. È necessario creare più connessioni per il trasferimento dei dati, il che aumenta i costi di amministrazione.

  • Non sono richiesti crittografia / certificati digitali per l'utilizzo di HTTP.

Dettagli del protocollo HTTP

Per comprendere la profondità del protocollo HTTP, fare clic su ciascuno dei collegamenti sottostanti.

  • HTTP Parameters

  • HTTP Messages

  • HTTP Requests

  • HTTP Responses

  • HTTP Methods

  • HTTP Status Codes

  • HTTP Header Fields

  • HTTP Security