HTTP - Sicurezza
HTTP viene utilizzato per le comunicazioni su Internet, quindi gli sviluppatori di applicazioni, i fornitori di informazioni e gli utenti devono essere consapevoli dei limiti di sicurezza in HTTP / 1.1. Questa discussione non include soluzioni definitive ai problemi qui menzionati, ma fornisce alcuni suggerimenti per ridurre i rischi per la sicurezza.
Perdita di informazioni personali
I client HTTP sono spesso a conoscenza di una grande quantità di informazioni personali come il nome dell'utente, la posizione, l'indirizzo di posta, le password, le chiavi di crittografia, ecc. Quindi è necessario prestare molta attenzione per evitare la perdita involontaria di queste informazioni tramite il protocollo HTTP ad altre fonti.
Tutte le informazioni riservate devono essere archiviate sul server in forma crittografata.
Rivelare la versione software specifica del server potrebbe consentire alla macchina server di diventare più vulnerabile agli attacchi contro il software che è noto per contenere falle di sicurezza.
I proxy che fungono da portale attraverso un firewall di rete dovrebbero adottare precauzioni speciali per quanto riguarda il trasferimento delle informazioni di intestazione che identificano gli host dietro il firewall.
Le informazioni inviate nel campo "Da" potrebbero essere in conflitto con gli interessi sulla privacy dell'utente o con la politica di sicurezza del loro sito e, quindi, non dovrebbero essere trasmesse senza che l'utente possa disabilitare, abilitare e modificare il contenuto del campo.
I client non devono includere un campo di intestazione Referer in una richiesta HTTP (non sicura), se la pagina referente è stata trasferita con un protocollo sicuro.
Gli autori di servizi che utilizzano il protocollo HTTP non dovrebbero utilizzare moduli basati su GET per l'invio di dati sensibili, poiché i dati verranno codificati nell'URI della richiesta.
Attacco basato su nomi di file e percorsi
Il documento dovrebbe essere limitato ai documenti restituiti dalle richieste HTTP in modo che siano solo quelli che erano previsti dagli amministratori del server.
Ad esempio, UNIX, Microsoft Windows e altri sistemi operativi utilizzano '..'come componente del percorso per indicare un livello di directory superiore a quello corrente. Su un tale sistema, un server HTTP DEVE disabilitare qualsiasi costrutto di questo tipo nell'URI di richiesta, se altrimenti consentirebbe l'accesso a una risorsa al di fuori di quelle destinate ad essere accessibili tramite il server HTTP.
Spoofing DNS
I client che utilizzano HTTP fanno molto affidamento sul Domain Name Service e sono quindi generalmente soggetti ad attacchi alla sicurezza basati sull'associazione deliberata di indirizzi IP e nomi DNS. Quindi i client devono essere cauti nell'assumere la validità continua di un'associazione numero IP / nome DNS.
Se i client HTTP memorizzano nella cache i risultati delle ricerche del nome host per ottenere un miglioramento delle prestazioni, devono osservare le informazioni TTL riportate dal DNS. Se i client HTTP non osservano questa regola, potrebbero essere falsificati quando cambia l'indirizzo IP di un server a cui si accedeva in precedenza.
Intestazioni di posizione e spoofing
Se un singolo server supporta più organizzazioni che non si fidano l'una dell'altra, DEVE controllare i valori delle intestazioni Posizione e Posizione contenuto nelle risposte che vengono generate sotto il controllo di dette organizzazioni per assicurarsi che non tentino di invalidare le risorse che non hanno autorità.
Credenziali di autenticazione
I client HTTP e gli agenti utente esistenti in genere conservano le informazioni di autenticazione a tempo indeterminato. HTTP / 1.1 non fornisce un metodo per un server per indirizzare i client a eliminare queste credenziali memorizzate nella cache, il che rappresenta un grosso rischio per la sicurezza.
Esistono diversi modi per aggirare le parti di questo problema, quindi si consiglia di utilizzare la protezione con password negli screen saver, i timeout di inattività e altri metodi che mitigano i problemi di sicurezza inerenti a questo problema.
Proxy e memorizzazione nella cache
I proxy HTTP sono men-in-the-middle e rappresentano un'opportunità per attacchi man-in-the-middle. I proxy hanno accesso alle informazioni relative alla sicurezza, alle informazioni personali sui singoli utenti e alle organizzazioni e alle informazioni proprietarie appartenenti agli utenti e ai fornitori di contenuti.
Gli operatori proxy dovrebbero proteggere i sistemi su cui vengono eseguiti i proxy, in quanto proteggerebbero qualsiasi sistema che contiene o trasporta informazioni sensibili.
I proxy di memorizzazione nella cache forniscono ulteriori potenziali vulnerabilità, poiché i contenuti della cache rappresentano un obiettivo interessante per lo sfruttamento dannoso. Pertanto, i contenuti della cache dovrebbero essere protetti come informazioni sensibili.