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