1. HTTPS obligatoire
Tout site doit être servi en HTTPS avec un certificat SSL valide. C'est non négociable.
2. Headers de sécurité
X-Frame-Options, Content-Security-Policy, Strict-Transport-Security : ces headers protègent contre les attaques courantes.
3. Protection CSRF
Chaque formulaire doit inclure un token CSRF unique pour empêcher les soumissions frauduleuses.
4. Requêtes préparées
Utilisez TOUJOURS des requêtes préparées (PDO) pour interagir avec la base de données. Jamais de concaténation SQL.
5. Échappement des sorties
htmlspecialchars() sur TOUTES les données affichées pour prévenir les attaques XSS.
6. Mots de passe sécurisés
password_hash() avec bcrypt (coût 12 minimum) pour le stockage, password_verify() pour la vérification.
7. Rate limiting
Limitez les tentatives de connexion (5 max / 5 min) et les soumissions de formulaires.
8. Gestion des sessions
session_regenerate_id(true) après chaque connexion pour prévenir le vol de session.
9. Fichiers sensibles protégés
Bloquez l'accès aux fichiers .env, .sql, .log, .bak via .htaccess.
10. Mises à jour régulières
Maintenez vos dépendances à jour et surveillez les vulnérabilités connues.