Mattéo Rogier
Comment sécuriser votre site web : le guide complet pour les entreprises en 2026
Tech

Comment sécuriser votre site web : le guide complet pour les entreprises en 2026

Mattéo ROGIER··10 min de lecture

Introduction

En 2025, les cyberattaques ont augmenté de 38% par rapport à l'année précédente, selon le rapport annuel de l'ANSSI. Les PME sont devenues la cible n°1 : 43% des cyberattaques visent désormais les petites et moyennes entreprises, et 60% d'entre elles ferment dans les 6 mois suivant une attaque majeure.

Votre site web est la porte d'entrée de votre entreprise en ligne. S'il n'est pas sécurisé, vous exposez vos clients, vos données et votre réputation. Ce guide vous donne les mesures concrètes à mettre en place — du basique au avancé.

1. HTTPS et certificat SSL : le minimum vital

Pourquoi c'est indispensable

Depuis 2018, Google Chrome affiche "Non sécurisé" pour les sites en HTTP. En 2026, ne pas avoir HTTPS est un suicide commercial :

  • Google pénalise les sites HTTP dans le classement
  • Les navigateurs bloquent les formulaires sur les pages non sécurisées
  • Les utilisateurs abandonnent immédiatement un site "Non sécurisé"

Comment le mettre en place

`bash

# Avec Let's Encrypt (gratuit)

sudo certbot --nginx -d votre-domaine.com -d www.votre-domaine.com

# Renouvellement automatique

sudo certbot renew --dry-run

`

Checklist HTTPS :

  • Certificat SSL/TLS valide et à jour
  • Redirection automatique HTTP → HTTPS
  • HSTS (HTTP Strict Transport Security) activé
  • Pas de contenu mixte (mixed content)

2. En-têtes de sécurité HTTP

Les en-têtes HTTP sont votre première ligne de défense. La plupart des sites n'en configurent aucun.

Les en-têtes essentiels

`typescript

// next.config.js - Configuration Next.js

const securityHeaders = [

{

key: 'X-Content-Type-Options',

value: 'nosniff'

},

{

key: 'X-Frame-Options',

value: 'DENY'

},

{

key: 'X-XSS-Protection',

value: '1; mode=block'

},

{

key: 'Referrer-Policy',

value: 'strict-origin-when-cross-origin'

},

{

key: 'Permissions-Policy',

value: 'camera=(), microphone=(), geolocation=()'

},

{

key: 'Content-Security-Policy',

value: "default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline';"

}

];

`

Vérifier vos en-têtes

Utilisez securityheaders.com pour tester votre site. Visez un score A ou A+.

3. Protection contre les attaques XSS

Le Cross-Site Scripting (XSS) est la vulnérabilité n°1 du web. Un attaquant injecte du code JavaScript malveillant dans votre site, qui s'exécute dans le navigateur de vos visiteurs.

Types d'attaques XSS

  • Stored XSS : le code malveillant est stocké en base de données (commentaires, profils)
  • Reflected XSS : le code est injecté via l'URL ou un formulaire
  • DOM-based XSS : manipulation directe du DOM côté client

Comment se protéger

`typescript

// ❌ Dangereux : injection possible

element.innerHTML = userInput;

// ✅ Sécurisé : le texte est échappé automatiquement

element.textContent = userInput;

// ✅ En React : échappement automatique par défaut

return

{userInput}

;

// ⚠️ Attention : dangerouslySetInnerHTML désactive la protection

// Ne l'utilisez JAMAIS avec du contenu utilisateur non sanitisé

return

;

`

Règle d'or : ne faites JAMAIS confiance aux données qui viennent de l'utilisateur. Sanitisez, échappez, validez.

4. Protection CSRF (Cross-Site Request Forgery)

Le CSRF force un utilisateur authentifié à exécuter des actions à son insu (changer son mot de passe, effectuer un virement, etc.).

Mise en place

`typescript

// Utiliser des tokens CSRF dans les formulaires

import { generateToken, validateToken } from '@/lib/csrf';

// Côté serveur : générer un token

const csrfToken = generateToken(session.id);

// Côté client : inclure le token

{/* ... */}

// Côté API : valider le token

if (!validateToken(req.body._csrf, session.id)) {

return res.status(403).json({ error: 'Invalid CSRF token' });

}

`

Attribut SameSite pour les cookies

`typescript

// Configuration de cookies sécurisés

res.setHeader('Set-Cookie', [

'session=abc123; HttpOnly; Secure; SameSite=Strict; Path=/'

]);

`

5. Protection contre les injections SQL

Même si vous utilisez un ORM, les injections SQL restent un risque si vous construisez des requêtes manuellement.

Le problème

`typescript

// ❌ JAMAIS : injection SQL possible

const query = SELECT * FROM users WHERE email = '${email}';

// ✅ Toujours utiliser des requêtes paramétrées

const { data } = await supabase

.from('users')

.select('*')

.eq('email', email);

`

Bonnes pratiques

  • Utilisez toujours un ORM (Prisma, Drizzle) ou un query builder (Supabase)
  • Validez les entrées côté serveur avec Zod ou Yup
  • Limitez les permissions de votre base de données (principe du moindre privilège)
  • Ne stockez JAMAIS les mots de passe en clair — utilisez bcrypt ou argon2

6. Authentification et gestion des sessions

Mots de passe

`typescript

// Hachage sécurisé avec bcrypt

import bcrypt from 'bcrypt';

const SALT_ROUNDS = 12;

const hashedPassword = await bcrypt.hash(password, SALT_ROUNDS);

const isValid = await bcrypt.compare(inputPassword, hashedPassword);

`

Gestion des sessions

  • Tokens JWT avec expiration courte (15-30 min) + refresh tokens
  • Sessions côté serveur avec Redis pour les applications sensibles
  • Invalidation de session côté serveur après déconnexion
  • Rate limiting sur les endpoints d'authentification

7. Mises à jour et dépendances

Les dépendances obsolètes sont un vecteur d'attaque majeur. 78% des applications utilisent au moins une dépendance avec une vulnérabilité connue.

`bash

# Auditer vos dépendances

npm audit

# Mettre à jour les patchs de sécurité

npm audit fix

# Outils automatisés

# Activez Dependabot ou Renovate sur GitHub

`

8. Sauvegardes et plan de reprise

La meilleure sécurité ne vous protège pas à 100%. Vous devez avoir :

  • Sauvegardes automatiques quotidiennes de la base de données
  • Sauvegardes off-site (pas uniquement chez le même hébergeur)
  • Plan de reprise d'activité (PRA) testé régulièrement
  • Monitoring en temps réel (uptime, erreurs, tentatives de connexion suspectes)

Checklist sécurité complète

  • HTTPS avec certificat SSL valide
  • En-têtes de sécurité configurés (CSP, HSTS, X-Frame-Options)
  • Protection XSS dans tout le code
  • Tokens CSRF sur les formulaires
  • Requêtes SQL paramétrées uniquement
  • Mots de passe hachés avec bcrypt/argon2
  • Rate limiting sur les endpoints sensibles
  • Dépendances à jour et auditées
  • Sauvegardes automatiques testées
  • Monitoring et alertes en place

Conclusion

La sécurité n'est pas un luxe, c'est une obligation. Chaque mesure de ce guide réduit considérablement votre surface d'attaque. Commencez par les bases (HTTPS, en-têtes, mises à jour), puis renforcez progressivement.

Un site sécurisé inspire confiance, protège vos clients et vous évite des conséquences juridiques potentiellement dévastatrices.


Vous voulez un audit de sécurité de votre site ? Contactez-moi et je vous envoie un rapport complet sous 48h.

Disponibilités cette semaine

Vous avez un projet ? Parlons-en.

Réservez un appel gratuit et sans engagement pour discuter de vos objectifs.

30 minGoogle MeetSans engagement
Réserver un appel gratuit

Articles similaires