Aller au contenu
ZarexDocs

Shield

Un pare-feu applicatif qui bloque les attaques les plus courantes avant qu'elles n'atteignent votre code.

Le Shield analyse le chemin, les paramètres d'URL, le corps et les en-têtes de chaque requête, y compris sous forme encodée, et bloque les signatures d'attaque connues :

  • injections SQL ;
  • XSS (injection de script) ;
  • traversée de répertoires et inclusion de fichiers ;
  • injection de commandes ;
  • SSRF ;
  • Log4Shell ;
  • injection de modèles (SSTI).

Le problème

Dès qu'une application est en ligne, elle reçoit des requêtes automatisées qui cherchent des failles connues : un paramètre d'URL mal filtré qui laisse lire la base de données (injection SQL), un champ qui réaffiche du code JavaScript (XSS), un chemin qui donne accès aux fichiers du serveur… Il suffit d'une seule faille, dans votre code ou dans une dépendance, pour qu'une de ces requêtes réussisse.

Ce que le Shield arrête

  • les scanners automatiques, qui testent des milliers de sites à la chaîne ;
  • les tentatives d'intrusion ciblées sur vos formulaires et vos API ;
  • l'exploitation de failles connues dans vos dépendances, comme Log4Shell.

Quand l'utiliser

Partout : c'est la règle de base. Le Shield ne remplace pas un code sûr (requêtes SQL paramétrées, échappement des sorties) ; il ajoute une couche de défense devant lui.

Configuration

import { shield } from "@zarex/express"; // ou le paquet de votre framework

rules: [shield()],

Sans option, le Shield est en LIVE et toute attaque détectée est refusée.

Exemple

server.ts
import express from "express";
import { zarex, shield } from "@zarex/express";

const app = express();
app.use(express.json());

app.use(
  zarex({
    key: process.env.ZAREX_KEY!,
    inspectBody: true, // analyser aussi le corps des requêtes
    rules: [shield()],
  })
);

Le corps et les cookies

Par défaut, le corps des requêtes n'est pas analysé : activez inspectBody (avec Express, après express.json()). Les cookies ne sont transmis que si vous activez inspectCookies, puisqu'ils contiennent les sessions de vos visiteurs.

Options

OptionValeursRôle
mode"LIVE" · "DRY_RUN" · "OFF"Défaut "LIVE".
thresholdde 1 à 100Seuil de refus. Chaque signature a un poids selon sa certitude, et les signatures détectées s'additionnent. Sans seuil, toute détection refuse.
oversize"deny" · "inspect" · "allow"Que faire d'une entrée trop grande pour être analysée en entier (8 Ko pour le chemin et chaque en-tête, 48 Ko pour le corps).

Le seuil, en dernier recours

Monter threshold réduit les faux positifs, mais aussi la protection. Observez d'abord votre trafic en DRY_RUN avant de le régler.

Sur cette page