La plupart des incidents de sécurité sur des applications web ne viennent pas d’attaques sophistiquées, mais d’oublis simples. Cette checklist reprend les points à vérifier avant chaque mise en production d’une application PHP.
Ce qu’il faut retenir
- Requêtes préparées partout (PDO, mysqli ou l’ORM) : aucune variable concaténée dans du SQL.
- Échappement à l’affichage avec
htmlspecialchars()ou le moteur de templates, pour bloquer les injections XSS. - Jetons CSRF sur tous les formulaires qui modifient des données.
- Mots de passe hachés avec
password_hash(), jamais en MD5 ou SHA1.
Configuration du serveur
display_errors = Offen production : les erreurs vont dans un journal, pas à l’écran.- HTTPS obligatoire, cookies de session en
Secure,HttpOnlyetSameSite. - Les dossiers d’upload ne doivent jamais exécuter de PHP.
- Les fichiers sensibles (
.env, sauvegardes SQL, archives) hors de la racine web.
Les uploads, point sensible
Ne vous fiez pas à l’extension envoyée par le navigateur : vérifiez le type réel du fichier, limitez la taille, renommez le fichier côté serveur et stockez-le hors des dossiers exécutables.
Conseil pratique
Ajoutez un journal des actions sensibles (connexion, changement de droits, suppression) et des sauvegardes automatiques testées. Une sauvegarde qu’on n’a jamais restaurée n’est qu’un espoir.