Helmet è un'utile modulo che aggiunge un ulteriore layer di sicurezza alle nostre app in ExpressJS.
Helmet è utile per proteggere l’applicazione da alcune vulnerabilità web note configurando le intestazioni HTTP in modo appropriato.
Attualmente, Helmet non è altro che una raccolta di nove funzioni middleware più piccole che impostano le intestazioni HTTP relative alla sicurezza:
- csp imposta l’intestazione
Content-Security-Policy
per impedire attacchi XSS (cross-site scripting) e altri attacchi da altri siti. - hidePoweredBy rimuove l’intestazione
X-Powered-By
. - hpkp aggiunge le intestazioni Public Key Pinning per impedire attacchi man-in-the-middle con certificati contraffatti.
- hsts imposta l’intestazione
Strict-Transport-Security
che rafforza connessioni (HTTP su SSL/TLS) sicure per il server. - ieNoOpen imposta
X-Download-Options
per IE8+. - noCache imposta le intestazioni
Cache-Control
e Pragma per disabilitare la memorizzazione in cache della parte client. - noSniff imposta
X-Content-Type-Options
per impedire ai browser di effettuare l’analisi MIME di una risposta fuori dal contenuto dichiarato. - frameguard imposta l’intestazione
X-Frame-Options
per fornire la protezione clickjacking. - xssFilter imposta
X-XSS-Protection
per abilitare il filtro XSS (Cross-site scripting) nei browser web più recenti.
Installate Helmet come qualsiasi altro modulo:
npm install --save helmet
Successivamente, per utilizzarlo nel codice:
const helmet = require('helmet');
app.use(helmet());