mon-site-perso/admin/SECURITY_README.md
2025-09-12 10:57:48 +02:00

3 KiB

Améliorations de Sécurité - Administration

🔒 Corrections Apportées

1. Authentification Sécurisée

  • Hash des mots de passe : Utilisation de password_hash() et password_verify()
  • Protection CSRF : Tokens CSRF sur tous les formulaires
  • Limitation des tentatives : Max 5 tentatives, blocage de 15 minutes
  • Sessions sécurisées : Configuration stricte des cookies de session
  • Timeout de session : Déconnexion automatique après 1 heure d'inactivité

2. Validation et Sanitization

  • Échappement HTML : Protection contre XSS
  • Validation des données : Vérification des formats et longueurs
  • Sanitization : Nettoyage des entrées utilisateur

3. Protection des Fichiers

  • Fichiers sensibles cachés : .htaccess pour protéger config.php
  • Headers de sécurité : X-Frame-Options, CSP, etc.
  • Logs de tentatives : Enregistrement des tentatives de connexion

🚀 Installation

Étape 1 : Générer le hash du mot de passe

  1. Accédez à admin/generate_password_hash.php
  2. Entrez votre mot de passe actuel
  3. Copiez le hash généré
  4. SUPPRIMEZ le fichier generate_password_hash.php

Étape 2 : Configuration

  1. Ouvrez admin/config.php
  2. Remplacez ADMIN_PASSWORD_HASH par le hash généré
  3. Ajustez les autres paramètres si nécessaire

Étape 3 : Test

  1. Testez la connexion avec vos identifiants
  2. Vérifiez que les tentatives incorrectes sont bloquées
  3. Testez la déconnexion sécurisée

⚙️ Configuration

Paramètres dans config.php

define('ADMIN_PASSWORD_HASH', 'votre_hash_ici');
define('SESSION_TIMEOUT', 3600);        // 1 heure
define('MAX_LOGIN_ATTEMPTS', 5);        // 5 tentatives
define('LOGIN_LOCKOUT_TIME', 900);      // 15 minutes

🔐 Fonctionnalités de Sécurité

Protection contre les attaques par force brute

  • Limitation du nombre de tentatives par IP
  • Blocage temporaire après échec
  • Délai artificiel sur les tentatives échouées

Protection CSRF

  • Token unique par session
  • Vérification sur tous les formulaires sensibles
  • Régénération automatique des tokens

Gestion des sessions

  • Configuration sécurisée des cookies
  • Régénération périodique des IDs de session
  • Nettoyage complet lors de la déconnexion

📁 Fichiers Modifiés

  • admin/config.php - Configuration de sécurité
  • admin/login.php - Authentification sécurisée
  • admin/logout.php - Déconnexion sécurisée
  • admin/index.php - Gestion des sessions
  • admin/projects.php - Protection CSRF et validation
  • admin/includes/nav.php - Déconnexion sécurisée
  • admin/.htaccess - Protection des fichiers
  • admin/generate_password_hash.php - Générateur de hash (à supprimer)

⚠️ Important

  1. Supprimez generate_password_hash.php après utilisation
  2. Sauvegardez vos données avant mise en production
  3. Testez toutes les fonctionnalités après déploiement
  4. Surveillez les logs de tentatives de connexion