Ir al contenido principal

PHP · SAST

SAST PHP que se ejecuta totalmente sin conexión

Audite Laravel, Symfony, WordPress y PHP legacy contra inyección SQL, XSS, file inclusion y deriva de configuración — sin subir código a la nube de un tercero.

Frameworks y librerías escaneados

Probamos la cobertura mediante fixtures en estos frameworks. Se añaden nuevos patrones en cada release de reglas integradas.

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

Principales clases CWE detectadas

Estas clases CWE aparecen con mayor frecuencia en bases de código modernas de este lenguaje. StaticCodeAudit incluye reglas dedicadas para cada una, mapeadas a OWASP Top 10 / ISO 27001 / ASVS cuando es pertinente.

CWE-89

Inyección SQL

mysql_query("... " . $_GET['id']), $pdo->query() con concat, Laravel DB::raw() con entrada user, WordPress $wpdb->query con vars sin escapar.

Detectado por la regla SCA: sql_injection_concat

CWE-79

Cross-Site Scripting (XSS)

echo $_GET['name'] sin htmlspecialchars, Twig {{ var|raw }}, WordPress esc_attr faltante en datos user.

Detectado por la regla SCA: xss_raw_html

CWE-78

Inyección de comando OS

system($cmd), exec(), shell_exec(), passthru() con entrada user. Las funciones shell PHP interpretan metacaracteres por defecto.

Detectado por la regla SCA: command_injection_php

CWE-98

File Inclusion (RFI/LFI)

include $_GET['page'] o require con rutas controladas por usuario. Permite lectura arbitraria de archivos, a veces ejecución remota.

Detectado por la regla SCA: path_traversal_os_join

CWE-502

Deserialización insegura

unserialize($_GET['data']) sobre entrada user. La serialización nativa PHP es un vector gadget conocido (phpggc).

Detectado por la regla SCA: unsafe_deserialization

CWE-798

Credenciales hardcoded

Credenciales DB en config.php commiteado, WordPress wp-config.php en repo público, API keys como constantes.

Detectado por la regla SCA: hardcoded_secret

Vulnerable vs. seguro — tres ejemplos rápidos

CWE-89 Detectado por la regla SCA: sql_injection_concat
❌ Vulnerable
// Vulnerable — concatenación directa
$sql = "SELECT * FROM users WHERE id = " . $_GET['id'];
$result = $mysqli->query($sql);
✅ Seguro
// Seguro — consulta preparada
$stmt = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $_GET['id']);
$stmt->execute();
CWE-79 Detectado por la regla SCA: xss_raw_html
❌ Vulnerable
// Vulnerable — echo crudo
echo "<p>Hello, " . $_GET['name'] . "</p>";
✅ Seguro
// Seguro — htmlspecialchars con ENT_QUOTES + UTF-8
echo "<p>Hello, " . htmlspecialchars($_GET['name'], ENT_QUOTES, 'UTF-8') . "</p>";
CWE-78 Detectado por la regla SCA: command_injection_php
❌ Vulnerable
// Vulnerable — abuso metacaracteres shell
system("convert " . $_FILES['img']['tmp_name'] . " /var/thumb.jpg");
✅ Seguro
// Seguro — escapeshellarg + forma 2-arg
$src = escapeshellarg($_FILES['img']['tmp_name']);
system("convert {$src} /var/thumb.jpg");

Qué detecta StaticCodeAudit (este lenguaje)

  • Inyección SQL en PDO concat, mysqli sin prepared statements, Laravel DB::raw, WordPress $wpdb concat
  • XSS vía echo crudo, Twig |raw, htmlspecialchars / esc_attr faltantes
  • Inyección de comando en system, exec, shell_exec, passthru, popen
  • File inclusion (LFI/RFI) vía include, require sobre rutas user
  • Deserialización insegura vía unserialize sobre datos user
  • Credenciales hardcoded en config.php, wp-config.php, .env commiteado
  • Config sesión insegura (session.cookie_secure, session.cookie_httponly off)
  • Open redirect vía header("Location: " . $_GET['url'])
  • Path traversal en file_get_contents, fopen con rutas user
  • Cripto insegura (MD5/SHA1, mcrypt deprecado, claves/IV hardcoded)
  • Token CSRF faltante en endpoints POST
  • Display de errores PHP activado en producción (display_errors=On)
  • APIs deprecadas (mysql_*, ereg, split, php-fpm pm.user=root)
  • Misconfiguraciones CI/CD (.gitlab-ci, GitHub Actions, scripts Composer)

Audite su código

Audite Laravel, Symfony, WordPress y PHP legacy contra inyección SQL, XSS, file inclusion y deriva de configuración — sin subir código a la nube de un tercero.

Descargar el binario demo Reservar una demo guiada