Frameworks & bibliothèques scannés
Nous testons la couverture sur ces frameworks via fixtures. De nouveaux patterns sont ajoutés à chaque release de règles builtin.
Principales classes CWE détectées
Ces classes CWE apparaissent le plus souvent dans les codebases modernes de ce langage. StaticCodeAudit livre des règles dédiées pour chacune, mappées à OWASP Top 10 / ISO 27001 / ASVS quand pertinent.
CWE-89
Injection SQL
mysql_query("... " . $_GET['id']), $pdo->query() avec concat, Laravel DB::raw() avec entrée user, WordPress $wpdb->query avec vars non échappées.
Détecté par la règle SCA : sql_injection_concat
CWE-79
Cross-Site Scripting (XSS)
echo $_GET['name'] sans htmlspecialchars, Twig {{ var|raw }}, WordPress esc_attr manquant sur données user.
Détecté par la règle SCA : xss_raw_html
CWE-78
Injection de commande OS
system($cmd), exec(), shell_exec(), passthru() avec entrée user. Les fonctions shell PHP interprètent les métacaractères par défaut.
Détecté par la règle SCA : command_injection_php
CWE-98
File Inclusion (RFI/LFI)
include $_GET['page'] ou require avec chemins contrôlés par l'utilisateur. Permet lecture arbitraire de fichiers, parfois exécution de code.
Détecté par la règle SCA : path_traversal_os_join
CWE-502
Désérialisation non sécurisée
unserialize($_GET['data']) sur entrée user. La sérialisation native PHP est un vecteur de gadget connu (phpggc).
Détecté par la règle SCA : unsafe_deserialization
CWE-798
Identifiants en dur
Identifiants DB dans config.php committé, WordPress wp-config.php en repo public, clés API en constantes.
Détecté par la règle SCA : hardcoded_secret
Vulnérable vs. sain — trois exemples rapides
CWE-89
Détecté par la règle SCA : sql_injection_concat
// Vulnérable — concaténation directe
$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];
$result = $mysqli->query($sql);
// Sain — requête préparée
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $_GET['id']);
$stmt->execute();
CWE-79
Détecté par la règle SCA : xss_raw_html
// Vulnérable — echo brut
echo "<p>Hello, " . $_GET['name'] . "</p>";
// Sain — htmlspecialchars avec ENT_QUOTES + UTF-8
echo "<p>Hello, " . htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8') . "</p>";
CWE-78
Détecté par la règle SCA : command_injection_php
// Vulnérable — abus métacaractères shell
system("convert " . $_FILES['img']['tmp_name'] . " /var/thumb.jpg");
// Sain — escapeshellarg + forme 2-arg
$src = escapeshellarg($_FILES['img']['tmp_name']);
system("convert {$src} /var/thumb.jpg");
Ce que StaticCodeAudit détecte (ce langage)
- Injection SQL en PDO concat, mysqli sans prepared statements, Laravel DB::raw, WordPress $wpdb concat
- XSS via echo brut, Twig
|raw,htmlspecialchars/esc_attrmanquants - Injection de commande dans
system,exec,shell_exec,passthru,popen - File inclusion (LFI/RFI) via
include,requiresur chemins contrôlés user - Désérialisation non sécurisée via
unserializesur données user - Identifiants en dur dans
config.php,wp-config.php,.envcommitté - Config session non sécurisée (
session.cookie_secure,session.cookie_httponlyoff) - Open redirect via
header("Location: " . $_GET['url']) - Path traversal dans
file_get_contents,fopenavec chemins user - Crypto non sécurisée (MD5/SHA1, mcrypt déprécié, clés/IV en dur)
- Token CSRF manquant sur endpoints POST
- Affichage erreurs PHP activé en production (
display_errors=On) - APIs dépréciées (mysql_*, ereg, split, php-fpm pm.user=root)
- Misconfigurations CI/CD (.gitlab-ci, GitHub Actions, scripts Composer)
Auditez votre code
Auditez Laravel, Symfony, WordPress et PHP legacy contre l'injection SQL, XSS, file inclusion et dérive de config — sans téléverser de code vers un cloud tiers.
Télécharger le binaire démo Réserver une démo guidée