Il flag HttpOnly: protezione dei cookie da XSS
15/10/20 CoreTech Blog

Gli attacchi Cross-site scripting (XSS) sono spesso volti a rubare i cookie di sessione. In un simile attacco, il valore del cookie è accessibile da uno script lato client utilizzando JavaScript ( document.cookie). Tuttavia, nell'uso quotidiano, le applicazioni web hanno raramente bisogno di accedere ai cookie tramite JavaScript. Pertanto, è stato ideato un metodo per proteggere i cookie da tali furti: un flag che comunica al browser Web che è possibile accedere al cookie solo tramite HTTP, il flag HttpOnly .
Il flag HttpOnly non è nuovo. È stato implementato per la prima volta in Microsoft Internet Explorer 6 SP1 nel 2002 per proteggere dal furto di informazioni riservate. Attualmente, tutti i principali browser supportano i cookie HttpOnly . Solo alcuni browser mobili di nicchia possono potenzialmente ignorare questa bandiera.
Come funziona HttpOnly?
L' attributo HttpOnly è un attributo facoltativo dell'intestazione della risposta HTTP Set-Cookie che viene inviata dal server Web insieme alla pagina Web al browser Web in una risposta HTTP. Di seguito è riportato un esempio di impostazione di un cookie di sessione utilizzando l' intestazione Set-Cookie :
HTTP/2.0 200 OK
Content-Type: text/html
Set-Cookie: sessionid=QmFieWxvbiA1
Il cookie di sessione precedente non è protetto e può essere rubato in un attacco XSS. Tuttavia, se il cookie di sessione è impostato come segue, è protetto dall'accesso tramite JavaScript:
Set-Cookie: sessionid=QmFieWxvbiA1; HttpOnly
Come impostare HttpOnly lato server?
Tutti i linguaggi e gli ambienti back-end moderni supportano l'impostazione del flag HttpOnly . Ecco un esempio di come puoi farlo in PHP usando la funzione setcookie :
setcookie("sessionid", "QmFieWxvbiA1", ['httponly' => true]);
L'ultimo valore ( true ) rappresenta l'impostazione dell'attributo HttpOnly .
Altri flag per i cookie protetti
Il flag HttpOnly non è l'unico flag che puoi utilizzare per proteggere i tuoi cookie. Eccone altri due che possono essere utili.
La bandiera sicura
Il flag Secure viene utilizzato per dichiarare che il cookie può essere trasmesso solo utilizzando una connessione sicura (SSL / HTTPS). Se questo cookie è impostato, il browser non invierà mai il cookie se la connessione è HTTP. Questo flag impedisce il furto di cookie tramite attacchi man-in-the-middle.
Tieni presente che questo flag può essere impostato solo durante una connessione HTTPS. Se è impostato durante una connessione HTTP, il browser lo ignora.
Esempio:
Set-Cookie: sessionid=QmFieWxvbiA1; HttpOnly; Secure
Esempio di impostazione del cookie sopra in PHP:
setcookie("sessionid", "QmFieWxvbiA1", ['httponly' => true, 'secure' => true]);
La bandiera SameSite
Il flag SameSite viene utilizzato per dichiarare quando i browser web devono inviare il cookie, a seconda di come un visitatore interagisce con il sito che ha impostato il cookie. Questo flag viene utilizzato per proteggere dagli attacchi CSRF (Cross-Site Request Forgery).
L' attributo SameSite può avere uno dei seguenti valori:
- SameSite=Strict: Il cookie viene inviato solo se sei attualmente sul sito per cui il cookie è impostato. Se ci si trova su un sito diverso e si fa clic su un collegamento a un sito per il quale è impostato il cookie, il cookie nonviene inviato con la prima richiesta.
- SameSite=Lax: Il cookie nonviene inviato per il contenuto incorporato ma viene inviato se si fa clic su un collegamento a un sito per il quale è impostato il cookie. Viene inviato solo con tipi di richiesta sicura che non cambiano stato, ad esempio, GET.
- SameSite=None: Il cookie viene inviato anche per i contenuti incorporati.
Browser diversi si comportano in modo diverso per impostazione predefinita quando l' attributo SameSite non è impostato. Ad esempio, nel 2019 il browser Google Chrome ha cambiato il suo comportamento predefinito per i cookie SameSite.
Esempio:
Set-Cookie: sessionid=QmFieWxvbiA1; HttpOnly; Secure; SameSite=Strict
Esempio di impostazione del cookie sopra in PHP:
setcookie("sessionid", "QmFieWxvbiA1", ['httponly' => true, 'secure' => true, 'samesite'=>'Strict']);
I flag dei cookie sono sufficienti contro XSS?
Anche se i flag dei cookie sono efficaci per molti attacchi, non possono essere utilizzati come rimedio per lo scripting tra siti. Gli aggressori possono escogitare modi per aggirare le limitazioni. Ad esempio, esegui attacchi CST (cross-site tracing) e ruba anche i cookie protetti da flag come HttpOnly .
L'unico modo efficace per proteggersi dallo scripting cross-site è trovare tali vulnerabilità nell'applicazione ed eliminarle alla fonte. E l'unico modo efficace per trovare tali vulnerabilità è eseguire test di penetrazione manuali e / o utilizzare uno scanner di vulnerabilità automatizzato .
Eventi su 1Backup e Sicurezza
20/02/25 Overview Monitoring e Remote Access24/01/25 Overview Data Protection: Backup e DR11/12/24 1Backup | Demo del prodotto18/07/24 1Backup | Demo del prodotto10/06/24 1Backup | Demo del prodotto17/04/24 1Backup | Demo del prodotto31/10/23 1Backup | Demo del prodotto22/06/23 1Backup | Demo del prodotto18/01/23 1Backup | Demo del prodotto18/10/22 1Backup | Demo del prodotto12/09/22 1Backup | Demo del prodotto05/04/22 1Backup | Demo del prodotto25/01/22 1Backup | Demo del prodotto25/11/21 1Backup - Demo del prodotto09/09/21 1Backup - Demo del prodotto04/06/21 1Backup - Demo del prodotto04/06/21 1Backup - Demo del prodotto09/11/20 Backup in Cloud per iniziare a vendere20/09/19 Sicurezza dei dati In Cloud: Backup e Archiviazione14/02/19 1Backup, come configurare e gestire gli agenti nativi per NAS Synology e QNAP14/12/18 Salvataggio macchina virtuale VMWare con 1Backup21/11/18 Backup in Cloud con strategia per il GDPR06/11/18 SICUREZZA ICT - Proteggere il business nell'era del digitale10/10/18 1Backup e il salvataggio delle mailbox di Office 36527/09/18 SICUREZZA ICT - Proteggere il business nell'era del digitale26/09/18 Salvataggio macchina virtuale VMWare con 1Backup18/07/18 Salvataggio macchina virtuale VMWare con 1Backup11/07/18 Il Backup di MSSQL con 1Backup16/03/18 Backup in Cloud con strategia per il GDPR26/02/18 La conservazione dei dati e l'archiviazione della posta in cloud per ottemperare al nuovo GDPR06/02/18 SICUREZZA ICT - Proteggere il business nell'era del digitale02/02/18 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma11/01/18 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma01/12/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma10/11/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma07/09/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma08/06/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma13/04/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma23/03/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma23/02/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma26/01/17 Centralizza nel cloud il backup dei tuoi clienti con 1Backup: nuova funzione di verifica immediata degli esiti con Sygma29/11/16 Centralizza nel cloud il backup dei tuoi clienti con 1Backup, oggi ancora più completo grazie alla nuova funzione di verifica immediata degli esiti con Sygma27/10/16 Il Backup oggi25/10/16 Il Backup oggi19/09/16 Centralizza nel cloud il backup dei tuoi clienti con 1Backup, oggi ancora più completo grazie alla nuova funzione di verifica immediata degli esiti con Sygma13/06/16 Centralizza nel cloud il backup dei tuoi clienti con 1Backup, oggi ancora più completo grazie alla nuova funzione di verifica immediata degli esiti con Sygma18/04/16 Centralizza nel cloud il backup dei tuoi clienti con 1Backup, oggi ancora più completo grazie alla nuova funzione di verifica immediata degli esiti con Sygma15/02/16 Centralizza nel cloud il backup dei tuoi clienti con 1Backup, oggi ancora più completo grazie alla nuova funzione di verifica immediata degli esiti14/12/15 Centralizza nel cloud il backup dei tuoi clienti con 1Backup, oggi ancora più completo grazie alla nuova funzione di verifica immediata degli esiti16/11/15 Soluzione di Backup remoto per MSP | offri backup ai tuoi clienti21/09/15 Regalare il backup ai tuoi clienti e guadagnarci? Ora puoi con 1Backup13/07/15 Controlla l’esito del backup di tutti i tuoi clienti in 5 minuti con 1Backup29/06/15 Centralizza nel cloud il backup dei tuoi clienti18/05/15 Regalare il backup ai tuoi clienti e guadagnarci? Ora puoi con 1Backup16/03/15 1Backup - Offri e gestisci la soluzione di backup remoto ai tuoi clienti, maggiormente completa grazie alla integrazione con Sygma19/01/15 1Backup - Offri e gestisci la soluzione di backup remoto ai tuoi clienti, maggiormente completa grazie alla integrazione con Sygma18/11/14 1Backup - Offri e gestisci la soluzione di backup remoto ai tuoi clienti30/05/14 1Backup - Diventa un MSP, aggiungi il Backup Remoto con 1Backup28/02/14 Corso in Aula | Sistemi di Backup e Archiviazione della Posta Elettronica Installazione nuovi Storage per servizio 1Backup Aggiornamento MailArchive di 1Backup Prezzi Competitivi e Upgrade delle caselle 1Backup Archiviazione Mail a 15GB