Sélectionner une page
Sécuriser son Site Web en 2025 | Blog

Sécuriser son Site Web en 2025

Introduction

La sécurité web est essentielle en 2025. Les cyberattaques sont de plus en plus sophistiquées et aucun site n'est à l'abri. En tant que développeur freelance Lyon, je sécurise tous les sites que je développe en appliquant ces bonnes pratiques.

Statistiques alarmantes

43% des cyberattaques visent les PME. Un site WordPress mal sécurisé peut être hacké en moins de 24h. La prévention est votre meilleure défense.

1. HTTPS obligatoire

Le HTTPS n'est plus optionnel en 2025. Google pénalise les sites en HTTP et les navigateurs affichent des alertes de sécurité.

Pourquoi HTTPS ?

  • Chiffrement : Les données sont cryptées entre client et serveur
  • Intégrité : Impossible de modifier les données en transit
  • Authentification : Garantit l'identité du serveur
  • SEO : Google favorise les sites HTTPS

Obtenir un certificat SSL

# Let's Encrypt (gratuit) sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d votresite.com # Renouvellement automatique sudo certbot renew --dry-run
Sécurité web HTTPS

2. Prévenir les injections SQL

Les injections SQL sont l'une des attaques les plus courantes et dévastatrices.

Vulnérabilité

// MAUVAIS - Vulnérable aux injections $query = "SELECT * FROM users WHERE id = " . $_GET['id']; // Un attaquant peut envoyer : ?id=1 OR 1=1 // Et récupérer toute la base de données

Solution : Requêtes préparées

// BON - Utiliser PDO avec requêtes préparées $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$_GET['id']]); $user = $stmt->fetch(); // Avec paramètres nommés $stmt = $pdo->prepare("SELECT * FROM users WHERE email = :email"); $stmt->execute(['email' => $_POST['email']]);
"N'utilisez JAMAIS de concaténation directe avec des données utilisateur dans vos requêtes SQL"

3. Protection contre XSS

Les attaques XSS (Cross-Site Scripting) permettent d'injecter du code JavaScript malveillant.

Exemple d'attaque XSS

// Formulaire de commentaire // Attaquant envoie : // Si non filtré, le script vole les cookies des visiteurs

Protection

// PHP - Échapper les données echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8'); // JavaScript - Éviter innerHTML // MAUVAIS element.innerHTML = userInput; // BON element.textContent = userInput; // React échappe automatiquement
{userInput}

4. Tokens CSRF

Les attaques CSRF (Cross-Site Request Forgery) forcent un utilisateur à exécuter des actions non désirées.

Génération de token CSRF

// Générer un token session_start(); $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); // Dans le formulaire // Vérification if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) { die('CSRF token invalide'); }
Tokens CSRF sécurité

5. Authentification sécurisée

L'authentification est souvent le maillon faible de la sécurité.

Hachage des mots de passe

// JAMAIS stocker en clair ou MD5/SHA1 // MAUVAIS $password = md5($_POST['password']); // Trop faible // BON - Utiliser bcrypt $hash = password_hash($_POST['password'], PASSWORD_BCRYPT); // Vérification if (password_verify($_POST['password'], $storedHash)) { // Connexion réussie }

Bonnes pratiques mot de passe

  • Minimum 12 caractères
  • Mélange majuscules, minuscules, chiffres, symboles
  • Limite de tentatives de connexion (rate limiting)
  • Double authentification (2FA) recommandée
  • Expiration des sessions

Authentification moderne

En 2025, privilégiez OAuth2, JWT tokens, ou des solutions comme Auth0, Firebase Auth pour une sécurité optimale.

6. Headers de sécurité

Les headers HTTP ajoutent des couches de protection supplémentaires.

Configuration Apache (.htaccess)

# Protection XSS Header set X-XSS-Protection "1; mode=block" # Empêche le clickjacking Header always append X-Frame-Options SAMEORIGIN # Force HTTPS Header always set Strict-Transport-Security "max-age=31536000" # Contrôle MIME type Header set X-Content-Type-Options "nosniff" # Content Security Policy Header set Content-Security-Policy "default-src 'self'"

Configuration Nginx

add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Strict-Transport-Security "max-age=31536000" always; add_header Content-Security-Policy "default-src 'self'" always;

Content Security Policy (CSP)

Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self';

Conclusion

La sécurité web est un processus continu, pas une tâche ponctuelle. Appliquez ces bonnes pratiques dès le développement et effectuez des audits réguliers.

En tant que développeur freelance Lyon SUPINFO, je propose des audits de sécurité et la mise en place de ces protections. Contactez-moi pour sécuriser votre site.

Checklist sécurité

  • HTTPS avec certificat SSL valide
  • Requêtes préparées (pas de SQL injection)
  • Échappement XSS (htmlspecialchars)
  • Tokens CSRF sur tous les formulaires
  • Bcrypt pour les mots de passe
  • Headers de sécurité configurés
  • Mises à jour régulières (CMS, plugins)
  • Sauvegardes automatiques quotidiennes
TP

Tiago Perrin

Développeur freelance Lyon étudiant SUPINFO, spécialisé en développement web et optimisation SEO. Je crée des sites performants et bien référencés pour les entreprises lyonnaises.