Zum Hauptinhalt springen

PHP · SAST

PHP-SAST, das vollständig offline läuft

Auditieren Sie Laravel, Symfony, WordPress und Legacy-PHP auf SQL-Injection, XSS, File Inclusion und Konfigurations-Drift — ohne Code in eine Drittanbieter-Cloud hochzuladen.

Geprüfte Frameworks & Bibliotheken

Wir testen die Abdeckung über Fixtures auf diesen Frameworks. Neue Muster werden in jedem Builtin-Regel-Release ergänzt.

Laravel Symfony WordPress Drupal CodeIgniter Yii CakePHP Slim Phalcon Doctrine Eloquent PDO mysqli Composer PHPMailer Twig Blade

Häufigste erkannte CWE-Klassen

Diese CWE-Klassen treten in modernen Codebasen dieser Sprache am häufigsten auf. StaticCodeAudit liefert dedizierte Regeln für jede, gemappt auf OWASP Top 10 / ISO 27001 / ASVS, sofern relevant.

CWE-89

SQL-Injection

mysql_query("... " . $_GET['id']), $pdo->query() mit Concat, Laravel DB::raw() mit User-Input, WordPress $wpdb->query mit nicht-escapeden Variablen.

Erkannt von SCA-Regel: sql_injection_concat

CWE-79

Cross-Site Scripting (XSS)

echo $_GET['name'] ohne htmlspecialchars, Twig {{ var|raw }}, WordPress esc_attr bei User-Daten fehlt.

Erkannt von SCA-Regel: xss_raw_html

CWE-78

OS-Befehlsinjektion

system($cmd), exec(), shell_exec(), passthru() mit User-Input. PHPs Shell-Funktionen interpretieren standardmäßig Metazeichen.

Erkannt von SCA-Regel: command_injection_php

CWE-98

File Inclusion (RFI/LFI)

include $_GET['page'] oder require mit user-kontrollierten Pfaden. Erlaubt beliebiges Datei-Lesen, manchmal Remote Code Execution.

Erkannt von SCA-Regel: path_traversal_os_join

CWE-502

Unsichere Deserialisierung

unserialize($_GET['data']) auf User-Input. PHPs native Serialisierung ist ein bekannter Gadget-Vektor (phpggc).

Erkannt von SCA-Regel: unsafe_deserialization

CWE-798

Hartkodierte Zugangsdaten

DB-Zugangsdaten in commitetem config.php, WordPress wp-config.php in öffentlichem Repo, API-Keys als Konstanten.

Erkannt von SCA-Regel: hardcoded_secret

Verwundbar vs. sicher — drei kurze Beispiele

CWE-89 Erkannt von SCA-Regel: sql_injection_concat
❌ Verwundbar
// Verwundbar — direkte Konkatenation
$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];
$result = $mysqli->query($sql);
✅ Sicher
// Sicher — Prepared Statement
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $_GET['id']);
$stmt->execute();
CWE-79 Erkannt von SCA-Regel: xss_raw_html
❌ Verwundbar
// Verwundbar — rohes echo
echo "<p>Hello, " . $_GET['name'] . "</p>";
✅ Sicher
// Sicher — htmlspecialchars mit ENT_QUOTES + UTF-8
echo "<p>Hello, " . htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8') . "</p>";
CWE-78 Erkannt von SCA-Regel: command_injection_php
❌ Verwundbar
// Verwundbar — Shell-Metazeichen-Missbrauch
system("convert " . $_FILES['img']['tmp_name'] . " /var/thumb.jpg");
✅ Sicher
// Sicher — escapeshellarg + 2-Arg-Form
$src = escapeshellarg($_FILES['img']['tmp_name']);
system("convert {$src} /var/thumb.jpg");

Was StaticCodeAudit erkennt (diese Sprache)

  • SQL-Injection in PDO-Concat, mysqli ohne Prepared Statements, Laravel DB::raw, WordPress $wpdb-Concat
  • XSS via rohes echo, Twig |raw, fehlende htmlspecialchars / esc_attr
  • Befehlsinjektion in system, exec, shell_exec, passthru, popen
  • File Inclusion (LFI/RFI) via include, require auf user-kontrollierten Pfaden
  • Unsichere Deserialisierung via unserialize auf User-Daten
  • Hartkodierte Zugangsdaten in committeter config.php, wp-config.php, .env
  • Unsichere Session-Konfiguration (session.cookie_secure, session.cookie_httponly aus)
  • Open Redirect via header("Location: " . $_GET['url'])
  • Path Traversal in file_get_contents, fopen mit User-Pfaden
  • Unsichere Krypto (MD5/SHA1, mcrypt veraltet, hartkodierte Keys/IVs)
  • Fehlendes CSRF-Token bei POST-Endpoints
  • PHP-Fehleranzeige in Produktion aktiviert (display_errors=On)
  • Veraltete APIs (mysql_*, ereg, split, php-fpm pm.user=root)
  • CI/CD-Fehlkonfigurationen (.gitlab-ci, GitHub Actions, Composer-Scripts)

Auditieren Sie Ihren Code

Auditieren Sie Laravel, Symfony, WordPress und Legacy-PHP auf SQL-Injection, XSS, File Inclusion und Konfigurations-Drift — ohne Code in eine Drittanbieter-Cloud hochzuladen.

Demo-Binary herunterladen Geführte Demo buchen