Lusca est un middleware dédié à la sécurité de vos applications Express. Les menaces contemporaines les plus courantes sont ainsi prises en charge en 6 lignes de code :
app.use(lusca.csrf());
app.use(lusca.csp({/**/}));
app.use(lusca.hsts({maxAge: 31536000}));
app.use(lusca.csxframef('SAMEORIGIN'));
app.use(lusca.p3p('ABCDEF'));
app.use(lusca.xssProtection(true));
On ne présente plus la classique CSRF (Cross Site Request Forgery), qui exploite la confiance que vous accorde un site pour effectuer des opérations en votre nom (au hasard, un virement de votre compte bancaire vers le compte du pirate).
Le CSP (Content Security Policy), moins connu, est une white list. Votre navigateur autorise ainsi uniquement le téléchargement de fichiers depuis les CDN que vous indiquez.
HSTS (HTTP Strict Transport Security) est un header qu'envoie un server à un client pour obliger une communication via HTTPS plutôt que HTTP.
La protection contre le clickjacking est assurée par csxframef(). Le clickjacking est une attaque qui permet de vous faire cliquer sur un bouton ou au lien autre que celui auquel vous pensiez cliquer, ceci grâce à un habile bordel de frames et de css organisé par l'individu malveillant. Cela peut aller jusqu'au détournement de vos saisies dans un champ de texte (de mot de passe).
Platform for Privacy Preferences Project (P3P) permet à IE de clarifier comment vos données sont utilisées.
Enfin xssProtection() permet de lutter contre les bons vieux mais toujours aussi efficaces cross site scripting.
Voilà, avec lusca, module de krakenjs, vous serez raisonnablement protégé. Car aussi jouissive que soit la création d'application web avec Node et Express, elle est proche du zéro sécurité. Et sécuriser, avouons-le, n'est pas la partie la plus amusante de la création d'une application web. Lusca rend l'indispensable corvée plus aisée.