first commit

This commit is contained in:
mrtoine 2025-09-12 10:57:48 +02:00
commit b216a187bd
34 changed files with 4829 additions and 0 deletions

83
admin/SECURITY_README.md Normal file
View file

@ -0,0 +1,83 @@
# 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