HTTP (Hypertext Transfer Protocol)
Cos’è l’HTTP? l’abbiamo sempre visto prima di qualsiasi URL e ci siamo chiesti a cosa servisse esattamente.
l’HTTP così come l’FTP, TCP etc.. è un protocollo di trasferimento. Ideato agli inizi del Web vero e proprio, per trasferire informazioni sul web. Opera solitamente sulla porta 80.
Esistono varie implementazioni dell’HTTP sviluppate nel corso degli anni. Questo per far fronte ad alcune carenze della versione iniziale. L’HTTP funziona su un meccanismo richiesta/risposta (client/server).
Tra i metodi di richiesta più conosciuti nell’HTTP vi sono GET e POST, chi ha familiarità con PHP l’avrà intuito.
Mentra tra gli header di richiesta: Host (Nome del server a cui si riferisce l’URI) e User-Agent (Identifica il client, quindi il browser, la versione etc..).
Gli header della risposta più comuni sono:
- Server. Indica il tipo e la versione del server. Può essere visto come l’equivalente dell’header di richiesta User-Agent
- Content-Type. Indica il tipo di contenuto restituito. La codifica di tali tipi (detti Media type) è registrata presso lo IANA (Internet Assigned Number Authority ); essi sono detti tipi MIME (Multimedia Internet Message Extensions), la cui codifica è descritta nel documento RFC 1521. Alcuni tipi usuali di tipi MIME incontrati in una risposta HTML sono:
- text/html Documento HTML
- text/plain Documento di testo non formattato
- text/xml Documento XML
- image/jpeg Immagine di formato JPEG
Ha un funzionamento diverso dall’FTP in quanto la connessione aperta tra un client ed un server, viene chiusa dopo ogni singola richiesta completata. Invece in FTP rimane costantemente attiva… Infatti questo è il motivo per cui nell’HTTP bisogna ricorrere ai “Cookies“. Per Memorizzare una serie di stati/valori da una richiesta ad un’altra.
Per quanto concerne l’HTTP e la Sicurezza informatica, già da svariati anni per scongiurare attacchi di tipo MID (Man In the Middle), è stato introdotto l’HTTPS. La porta di default impiegata non è la 80 come in HTTP, ma la 443, mentre (trasparentemente all’utente) tra il protocollo TCP e HTTP si interpone un livello di crittografia/autenticazione come il Secure Sockets Layer (SSL).
Per ovvi motivi non ci siamo addentrati nei dettagli di questo protocollo standard, attualmente gestito dal consorzio W3C. Ma abbiamo dato uno sguardo alle caratteristiche principali.
(Abbiamo scritto alcune tra le richieste e risposte più famose nell’http per quando parleremo in questo blog di un attacco ai form di Upload che consiste nel caricare una shell dentro un’immagine e poi fare l’upload sul server. Proprio andando ad agire sugli header http è possibile ingannare alcuni script di Upload e quindi ritrovarci con la nostra Shell c99 sul sito bersaglio.)
Commenti