PHPStan Security
devsecopsDéfinition
PHPStan Security est l'application du framework d'analyse statique PHPStan à la détection de vulnérabilités de sécurité dans le code PHP, via des extensions spécialisées comme phpstan-security-checker, phpstan-taint-analysis, et des règles de sécurité custom. PHPStan est l'analyseur statique PHP le plus populaire (alternative à Psalm), capable de détecter des erreurs de type et des problèmes de logique en simulant l'exécution du code PHP sans l'exécuter réellement. L'extension de PHPStan pour la sécurité la plus significative est le Taint Analysis (analyse de contamination) : implémentée dans le projet phpstan-taint-analysis ou dans la version Psalm équivalente, cette analyse suit le flux des données depuis les sources non fiables (entrées utilisateur : $_GET, $_POST, $_COOKIE, $_SERVER, données de base de données) jusqu'aux sinks dangereux (fonctions d'exécution : eval(), system(), exec(), fonctions de sortie HTML : echo, print, fonctions de requête SQL : mysqli_query(), PDO::query() sans paramètres préparés). Quand un chemin de contamination est trouvé entre une source et un sink sans validation intermédiaire, une alerte de sécurité est générée. La communauté PHP a développé plusieurs packages d'extension PHPStan orientés sécurité. phpstan-security-checker (roave/security-advisories) vérifie que les dépendances Composer du projet ne contiennent pas de vulnérabilités connues — une forme de SCA intégrée dans PHPStan. Des règles custom PHPStan peuvent détecter l'utilisation de fonctions PHP dépréciées ou dangereuses (md5() pour du hashing de mots de passe, serialize() sur des données utilisateur, extract() sur des tableaux non validés). PHPStan est particulièrement pertinent pour les applications WordPress, Symfony, et Laravel — les trois stacks PHP les plus répandues — qui ont chacune des patterns de vulnérabilités spécifiques détectables via des règles PHPStan adaptées à ces frameworks.
Taint Analysis PHPStan : sources et sinks
La Taint Analysis en PHP trace le flux des données non fiables depuis les sources (superglobales PHP : $_GET['id'], $_POST['name'], $_COOKIE['session'], $_SERVER['HTTP_HOST'], données lues depuis la DB sans validation préalable) jusqu'aux sinks dangereux (echo $var directement = XSS potentiel, mysqli_query("SELECT * FROM users WHERE id='$id'") = injection SQL, eval($var) = code injection, include($_GET['page']) = LFI). Toute donnée atteignant un sink sans passer par une fonction de validation/sanitization (htmlspecialchars(), intval(), prepared statement) génère une alerte de contamination.
Intégration PHPStan dans Symfony et Laravel
Des packages PHPStan dédiés aux frameworks : phpstan-symfony (détecte les misconfigurations de services Symfony, les injections dans les DQL/DBC Doctrine) et larastan/larastan (PHPStan configuré pour Laravel — comprend les magic methods, Eloquent, les facades Laravel). Ces packages réduisent les faux positifs liés aux patterns de framework non compris par PHPStan de base. La configuration composer.json inclut ces packages en require-dev, et le fichier phpstan.neon configure les niveaux d'analyse (level: max pour la sécurité) et les chemins analysés.
PHPStan dans les pipelines CI PHP
Intégration CI pour les projets PHP : composer require --dev phpstan/phpstan && vendor/bin/phpstan analyse --level=8 src/ (niveau 8 ou 9 pour la rigueur de sécurité maximale), avec génération de rapport JSON (--error-format=json > phpstan-results.json). La commande échoue (exit code non nul) si des erreurs sont trouvées, bloquant le pipeline. Pour les projets legacy avec beaucoup d'erreurs PHPStan existantes, l'option --generate-baseline crée une baseline des erreurs connues à ignorer, permettant d'introduire PHPStan progressivement (seules les nouvelles erreurs bloquent).
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h