83 lines
3 KiB
Markdown
83 lines
3 KiB
Markdown
# 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
|
|
```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
|