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 = Off en production : les erreurs vont dans un journal, pas à l’écran.
  • HTTPS obligatoire, cookies de session en Secure, HttpOnly et SameSite.
  • 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.