> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/es/hacking-tools/web/php-security-scanner.md).

# Escáner de seguridad PHP

Buscador de funciones de PHP en PHP Security Scanner para funciones peligrosas de PHP, patrones de riesgo, impacto de explotación, notas de triaje y guía de remediación.

PHP Security Scanner es una herramienta de revisión estática solo para suscriptores para encontrar funciones PHP peligrosas, configuración débil, rutas arriesgadas de origen a destino y indicadores de escalada de privilegios en aplicaciones PHP.

Use el buscador de funciones como la vista principal de triaje: busque por nombre de función, categoría, impacto o severidad.

## Buscador de funciones

<table data-view="cards" data-full-width="true" data-search="true"><thead><tr><th>Función / Patrón</th><th>Categoría</th><th>Severidad</th><th>Impacto</th><th>Comprobación del escáner</th><th>Corrección</th></tr></thead><tbody><tr><td><code>system()</code></td><td>Ejecución de comandos</td><td>Crítica</td><td>RCE como usuario web</td><td>Marque las cadenas de comandos contaminadas, la interpolación, la concatenación y los argumentos controlados por el usuario.</td><td>Use APIs nativas de PHP o comandos y argumentos estrictamente incluidos en una lista permitida.</td></tr><tr><td><code>exec()</code></td><td>Ejecución de comandos</td><td>Crítica</td><td>RCE, captura de salida de comandos</td><td>Compruebe si la entrada de la solicitud, cookies, base de datos, archivos o CLI llega al comando.</td><td>Elimine el uso de shell o aisle los comandos fijos detrás de listas permitidas.</td></tr><tr><td><code>shell_exec()</code></td><td>Ejecución de comandos</td><td>Crítica</td><td>RCE con salida devuelta</td><td>Detecte la construcción dinámica de comandos y la salida renderizada en respuestas.</td><td>Sustitúyalo por llamadas seguras a bibliotecas.</td></tr><tr><td><code>passthru()</code></td><td>Ejecución de comandos</td><td>Crítica</td><td>RCE con salida sin procesar</td><td>Escálelo cuando sea accesible desde rutas web o procesamiento de archivos.</td><td>Evite las llamadas a shell; valide conjuntos de entrada fijos.</td></tr><tr><td><code>proc_open()</code></td><td>Control de procesos</td><td>Crítica</td><td>RCE, interacción con procesos</td><td>Revise el comando, la especificación de descriptores, el entorno y el directorio de trabajo.</td><td>Use trabajadores restringidos y plantillas de comandos fijas.</td></tr><tr><td><code>popen()</code></td><td>Control de procesos</td><td>Crítica</td><td>RCE a través de un flujo de proceso</td><td>Marque las cadenas de comandos contaminadas y las lecturas de flujo.</td><td>Sustitúyalo por APIs de flujo/archivos de PHP cuando sea posible.</td></tr><tr><td><code>pcntl_exec()</code></td><td>Control de procesos</td><td>Crítica</td><td>Reemplazo de proceso, riesgo de escalada de privilegios</td><td>Escalélo en contextos de CLI, cron, SUID, sudo y workers.</td><td>Elimine las rutas de ejecución privilegiadas del intérprete.</td></tr><tr><td><code>`backticks`</code></td><td>Ejecución de comandos</td><td>Crítica</td><td>Ejecución oculta de shell</td><td>Detecte la interpolación de variables dentro de expresiones con backticks.</td><td>Sustitúyalo por APIs seguras explícitas.</td></tr><tr><td><code>eval()</code></td><td>Ejecución de código</td><td>Crítica</td><td>Ejecución arbitraria de PHP</td><td>Marque todos los usos; escale cuando la cadena evaluada sea dinámica.</td><td>Use cierres, analizadores, mapas de despacho fijos o plantillas seguras.</td></tr><tr><td><code>assert()</code></td><td>Ejecución de código</td><td>Alta</td><td>Riesgo heredado de ejecución de código</td><td>Marque las aserciones de cadena en bases de código PHP antiguas.</td><td>Use solo aserciones booleanas; elimine las cadenas dinámicas.</td></tr><tr><td><code>create_function()</code></td><td>Ejecución de código</td><td>Alta</td><td>Código evaluado heredado</td><td>Detecte plugins antiguos y código de compatibilidad con PHP 5/7.</td><td>Sustitúyalo por funciones anónimas.</td></tr><tr><td><code>preg_replace()</code> con <code>/e</code></td><td>Ejecución de código</td><td>Alta</td><td>Reemplazo evaluado heredado</td><td>Marque la evaluación heredada de reemplazos por expresiones regulares.</td><td>Use <code>preg_replace_callback()</code>.</td></tr><tr><td><code>mb_ereg_replace()</code> con <code>e</code></td><td>Ejecución de código</td><td>Alta</td><td>Riesgo de reemplazo evaluado</td><td>Revise los patrones dinámicos y los valores de reemplazo.</td><td>Use lógica segura para callbacks sin evaluación.</td></tr><tr><td><code>include</code></td><td>Inclusión de archivos</td><td>Crítica</td><td>LFI/RFI a ejecución de código</td><td>Marque rutas, wrappers y trucos de extensiones controlados por el usuario.</td><td>Asigne las opciones del usuario a archivos fijos.</td></tr><tr><td><code>include_once</code></td><td>Inclusión de archivos</td><td>Crítica</td><td>LFI/RFI a ejecución de código</td><td>Compruebe las rutas de inclusión dinámicas y los efectos secundarios de autoload.</td><td>Use mapas de inclusión fijos y rutas canónicas.</td></tr><tr><td><code>require</code></td><td>Inclusión de archivos</td><td>Crítica</td><td>Ejecución de código de la aplicación</td><td>Escalélo cuando la ruta contenga datos de la solicitud.</td><td>Rechace la entrada dinámica del sistema de archivos.</td></tr><tr><td><code>require_once</code></td><td>Inclusión de archivos</td><td>Crítica</td><td>Ejecución de código de la aplicación</td><td>Revise cargadores de frameworks, cargadores de plugins y rutas de plantillas.</td><td>Use solo módulos incluidos en la lista permitida.</td></tr><tr><td><code>file_get_contents()</code></td><td>Lectura de archivos / red</td><td>Alta</td><td>LFI, SSRF, divulgación de secretos</td><td>Marque las rutas, URLs y <code>php://input</code> el análisis.</td><td>Canonice las rutas y bloquee los esquemas riesgosos.</td></tr><tr><td><code>readfile()</code></td><td>Lectura de archivo</td><td>Alta</td><td>Divulgación directa de archivos</td><td>Detecte la traversal de rutas y los controladores públicos de descarga.</td><td>Sirva archivos por ID desde directorios aprobados.</td></tr><tr><td><code>fopen()</code></td><td>Acceso a archivos / red</td><td>Alta</td><td>LFI, SSRF, escritura arbitraria</td><td>Rastree el modo, el origen de la ruta y los wrappers de URL.</td><td>Valide el esquema, el modo y la ruta canónica.</td></tr><tr><td><code>file()</code></td><td>Lectura de archivo</td><td>Alta</td><td>Divulgación de archivos basada en líneas</td><td>Marque los nombres de archivo controlados por el usuario.</td><td>Use rutas de almacenamiento fijas y comprobaciones de límites.</td></tr><tr><td><code>SplFileObject</code></td><td>Acceso a archivos</td><td>Alta</td><td>LFI, traversal de rutas</td><td>Detecte argumentos dinámicos del constructor.</td><td>Aplique <code>realpath()</code> la aplicación de límites.</td></tr><tr><td><code>file_put_contents()</code></td><td>Escritura de archivo</td><td>Crítica</td><td>Web shell, sobrescritura, envenenamiento de configuración</td><td>Escalélo cuando el nombre de archivo y el contenido estén contaminados o la ruta sea pública.</td><td>Genere nombres de archivo y escriba fuera de la raíz web.</td></tr><tr><td><code>fwrite()</code></td><td>Escritura de archivo</td><td>Alta</td><td>Modificación arbitraria de archivos</td><td>Rastree el origen del manejador desde <code>fopen()</code>.</td><td>Restrinja los directorios escribibles y los tipos de archivo.</td></tr><tr><td><code>copy()</code></td><td>Escritura / movimiento de archivo</td><td>Alta</td><td>Colocación o sobrescritura de archivos</td><td>Compruebe la contaminación del origen y el destino.</td><td>Use destinos fijos y nombres seguros frente a colisiones.</td></tr><tr><td><code>rename()</code></td><td>Movimiento de archivo</td><td>Alta</td><td>Omisión de carga, sobrescritura</td><td>Marque las rutas de destino controladas por el usuario.</td><td>Use nombres de almacenamiento generados.</td></tr><tr><td><code>unlink()</code></td><td>Eliminar archivo</td><td>Alta</td><td>Eliminación arbitraria de archivos</td><td>Detecte rutas contaminadas y traversal.</td><td>Elimine por ID de objeto, no por ruta en bruto.</td></tr><tr><td><code>chmod()</code></td><td>Permisos</td><td>Alta</td><td>Debilitamiento de privilegios</td><td>Marque modos amplios como <code>0777</code> y rutas contaminadas.</td><td>Use modos de mínimo privilegio y rutas fijas.</td></tr><tr><td><code>chown()</code> / <code>chgrp()</code></td><td>Propiedad</td><td>Alta</td><td>Manipulación de privilegios</td><td>Revise los scripts de despliegue y administración.</td><td>No exponga los cambios de propiedad a la entrada de la aplicación.</td></tr><tr><td><code>mkdir()</code></td><td>Sistema de archivos</td><td>Media</td><td>Traversal de rutas, permisos débiles</td><td>Marque las rutas dinámicas y los modos permisivos.</td><td>Normalice las rutas y establezca permisos estrictos.</td></tr><tr><td><code>touch()</code></td><td>Sistema de archivos</td><td>Media</td><td>Creación de archivos, abuso de marcas de tiempo</td><td>Escalélo en cron o en directorios privilegiados.</td><td>Use rutas fijas y comprobaciones de propiedad.</td></tr><tr><td><code>unserialize()</code></td><td>Deserialización</td><td>Crítica</td><td>Inyección de objetos PHP</td><td>Marque todo uso con datos de solicitud, cookie, carga, base de datos, caché o cola.</td><td>Use JSON o restrinja <code>allowed_classes</code>.</td></tr><tr><td><code>Phar</code> / <code>phar://</code></td><td>Deserialización</td><td>Alta</td><td>Inyección de objetos activada por metadatos</td><td>Marque las <code>phar://</code> rutas aceptadas y las funciones de archivo que tocan cargas.</td><td>Bloquee los wrappers y evite rutas de metadatos con objetos.</td></tr><tr><td><code>__wakeup()</code></td><td>Método mágico</td><td>Alta</td><td>Gadget de inyección de objetos</td><td>Revise las acciones de archivo, SQL, comando y red.</td><td>Mantenga los métodos mágicos sin efectos secundarios.</td></tr><tr><td><code>__destruct()</code></td><td>Método mágico</td><td>Alta</td><td>Gadget de inyección de objetos</td><td>Escalélo si elimina, escribe, incluye o ejecuta.</td><td>Evite los efectos secundarios peligrosos del destructor.</td></tr><tr><td><code>__toString()</code></td><td>Método mágico</td><td>Media</td><td>Ejecución implícita de gadget</td><td>Compruebe la renderización de plantillas y las rutas de registro.</td><td>Mantenga puras las funciones de conversión.</td></tr><tr><td><code>curl_exec()</code></td><td>Red / SSRF</td><td>Alta</td><td>SSRF, acceso a servicios internos</td><td>Rastree la URL, redirecciones, cabeceras, proxy y opciones de protocolo.</td><td>Permita solo hosts y bloquee rangos privados.</td></tr><tr><td><code>fsockopen()</code></td><td>Red</td><td>Alta</td><td>Acceso bruto a la red interna</td><td>Marque los valores dinámicos de host y puerto.</td><td>Restringa destinos y salida de tráfico.</td></tr><tr><td><code>pfsockopen()</code></td><td>Red</td><td>Alta</td><td>Acceso persistente a la red interna</td><td>Revise las conexiones persistentes a servicios.</td><td>Use puntos finales fijos.</td></tr><tr><td><code>stream_socket_client()</code></td><td>Red</td><td>Alta</td><td>SSRF y abuso de protocolos</td><td>Marque esquemas, hosts y puertos dinámicos.</td><td>Use destinos de red incluidos en la lista permitida.</td></tr><tr><td><code>SoapClient</code></td><td>Red</td><td>Media</td><td>Solicitudes estilo SSRF</td><td>Revise los valores dinámicos de WSDL y del endpoint.</td><td>Use WSDL fijos y bloquee redirecciones.</td></tr><tr><td><code>mysqli_query()</code></td><td>SQL</td><td>Alta</td><td>Inyección SQL</td><td>Marque el SQL concatenado o interpolado.</td><td>Use sentencias preparadas.</td></tr><tr><td><code>mysqli_multi_query()</code></td><td>SQL</td><td>Alta</td><td>Inyección SQL apilada</td><td>Escalélo para consultas dinámicas de múltiples sentencias.</td><td>Evite las APIs de multiquery para datos influenciados por el usuario.</td></tr><tr><td><code>PDO::query()</code></td><td>SQL</td><td>Alta</td><td>Inyección SQL</td><td>Marque las cadenas de consulta en bruto que contengan variables.</td><td>Use <code>prepare()</code> y parámetros vinculados.</td></tr><tr><td><code>PDO::exec()</code></td><td>SQL</td><td>Alta</td><td>Inyección SQL o SQL destructivo</td><td>Revise las acciones de administración y las migraciones.</td><td>Use sentencias parametrizadas.</td></tr><tr><td><code>call_user_func()</code></td><td>Despacho dinámico</td><td>Alta</td><td>Abuso de callbacks</td><td>Marque los nombres de callbacks contaminados.</td><td>Use mapas de despacho fijos.</td></tr><tr><td><code>call_user_func_array()</code></td><td>Despacho dinámico</td><td>Alta</td><td>Abuso de callbacks con argumentos dinámicos</td><td>Rastree el origen del callback y de los argumentos.</td><td>Use controladores explícitos e entradas tipadas.</td></tr><tr><td><code>$fn()</code></td><td>Función variable</td><td>Alta</td><td>Despacho arbitrario de funciones</td><td>Marque los nombres de funciones provenientes de la solicitud o de datos de la base de datos.</td><td>Asigne los nombres a funciones fijas.</td></tr><tr><td><code>$object->$method()</code></td><td>Método dinámico</td><td>Alta</td><td>Abuso del despacho de métodos</td><td>Marque los nombres de métodos provenientes de la entrada.</td><td>Use mapas de métodos incluidos en la lista permitida.</td></tr><tr><td><code>ReflectionFunction</code></td><td>Reflexión</td><td>Media</td><td>Invocación dinámica</td><td>Revise los nombres reflejados y la invocación.</td><td>Restrinja la reflexión a herramientas internas.</td></tr><tr><td><code>register_shutdown_function()</code></td><td>Callback diferido</td><td>Media</td><td>Ruta de ejecución oculta</td><td>Marque los callbacks y argumentos dinámicos.</td><td>Use callbacks fijos explícitos.</td></tr><tr><td><code>move_uploaded_file()</code></td><td>Sube</td><td>Alta</td><td>Web shell, sobrescritura, traversal de rutas</td><td>Compruebe la ruta de destino, la lógica de extensiones, el almacenamiento público y el uso del nombre de archivo original.</td><td>Cambie el nombre de los archivos, permita solo extensiones de la lista y almacene fuera de la raíz web.</td></tr><tr><td><code>getimagesize()</code></td><td>Validación de carga</td><td>Media</td><td>Validación débil del contenido</td><td>Marque cuando se use como única validación de carga.</td><td>Combine controles de extensión, MIME, contenido y almacenamiento.</td></tr><tr><td><code>ZipArchive::extractTo()</code></td><td>Extracción de archivos comprimidos</td><td>Alta</td><td>Zip slip, escritura arbitraria</td><td>Compruebe los nombres de las entradas del archivo comprimido y el directorio de extracción.</td><td>Canonice cada ruta extraída.</td></tr><tr><td><code>phpinfo()</code></td><td>Divulgación de información</td><td>Media</td><td>Fuga de configuración, rutas, módulos y entorno</td><td>Marque si es accesible fuera del desarrollo local.</td><td>Elimínelo de producción.</td></tr><tr><td><code>var_dump()</code> / <code>print_r()</code></td><td>Salida de depuración</td><td>Bajo</td><td>Fuga de datos y secretos</td><td>Escalélo cuando se use en respuestas o rutas de excepciones.</td><td>Use registros estructurados con redacción.</td></tr><tr><td><code>debug_backtrace()</code></td><td>Salida de depuración</td><td>Media</td><td>Divulgación de rutas y argumentos</td><td>Revise los manejadores de errores y las rutas de depuración.</td><td>Desactive la salida de depuración verbosa en producción.</td></tr></tbody></table>

## Buscador de configuración

<table data-view="cards" data-full-width="true" data-search="true"><thead><tr><th>Directiva</th><th>Severidad</th><th>Riesgo</th><th>Comprobación del escáner</th></tr></thead><tbody><tr><td><code>disable_functions</code></td><td>Alta</td><td>Las funciones peligrosas de ejecución siguen disponibles.</td><td>Informe la falta de endurecimiento o el endurecimiento incompleto, especialmente cuando existan sumideros de comandos.</td></tr><tr><td><code>open_basedir</code></td><td>Media</td><td>PHP puede acceder a rutas más amplias del sistema de archivos.</td><td>Marque valores ausentes, vacíos o excesivamente amplios.</td></tr><tr><td><code>allow_url_fopen</code></td><td>Media</td><td>Las APIs de archivos pueden obtener URLs.</td><td>Escalélo para lecturas de archivos basadas en URL y funciones propensas a SSRF.</td></tr><tr><td><code>allow_url_include</code></td><td>Crítica</td><td>Las inclusiones dinámicas pueden cargar recursos remotos.</td><td>Crítico cuando está habilitado con rutas de inclusión dinámicas.</td></tr><tr><td><code>display_errors</code></td><td>Media</td><td>Pueden filtrarse trazas, rutas y secretos.</td><td>Marque las configuraciones de producción habilitadas.</td></tr><tr><td><code>expose_php</code></td><td>Bajo</td><td>Divulgación de la versión de PHP.</td><td>Recomiende deshabilitarlo en producción.</td></tr><tr><td><code>file_uploads</code></td><td>Información</td><td>Existe superficie de ataque por carga de archivos.</td><td>Combínelo con comprobaciones de ruta de carga, tamaño, extensión y validación de contenido.</td></tr><tr><td><code>upload_max_filesize</code></td><td>Media</td><td>Cargas demasiado grandes y abuso de almacenamiento.</td><td>Marque valores mayores de lo que la aplicación requiere.</td></tr><tr><td><code>session.cookie_httponly</code></td><td>Media</td><td>El robo de cookies de sesión mediante scripts del lado del cliente es más fácil.</td><td>Se recomienda habilitarlo.</td></tr><tr><td><code>session.cookie_secure</code></td><td>Media</td><td>Las cookies pueden enviarse por HTTP.</td><td>Se recomienda habilitarlo en sitios HTTPS.</td></tr><tr><td><code>session.cookie_samesite</code></td><td>Bajo</td><td>La exposición a CSRF puede aumentar.</td><td>Se recomienda explícito <code>Laxo</code>  o  <code>Estricto</code>.</td></tr></tbody></table>

## Entradas de origen a sumidero

| Origen             | Ejemplos                                                                |
| ------------------ | ----------------------------------------------------------------------- |
| Petición           | `$_GET`, `$_POST`, `$_REQUEST`                                          |
| Cookies / sesiones | `$_COOKIE`, valores de sesión                                           |
| Subidas            | `$_FILES`, nombres de archivo originales, rutas temporales              |
| Cabeceras          | `$_SERVER['HTTP_*']`, `getallheaders()`                                 |
| Cuerpo en bruto    | `php://input`, JSON/XML decodificado                                    |
| CLI / trabajadores | `$argv`, `STDIN`, variables de entorno                                  |
| Datos almacenados  | Filas de base de datos, entradas de caché, colas, columnas serializadas |
| Archivos locales   | Archivos de configuración, importaciones CSV, archivos temporales       |

## IDs de reglas

| ID de regla        | Severidad | Significado                                                                                    |
| ------------------ | --------- | ---------------------------------------------------------------------------------------------- |
| `PHP-CMD-001`      | Crítica   | La entrada contaminada llega a la ejecución de comandos.                                       |
| `PHP-EVAL-001`     | Crítica   | La entrada contaminada llega a la evaluación de código PHP.                                    |
| `PHP-INCL-001`     | Crítica   | La entrada contaminada controla las rutas de include/require.                                  |
| `PHP-DESER-001`    | Crítica   | La entrada contaminada llega a `unserialize()`.                                                |
| `PHP-WRITE-001`    | Crítica   | Una escritura de archivo controlada por el usuario llega a una ruta ejecutable o pública.      |
| `PHP-UPLOAD-001`   | Alta      | La validación o el almacenamiento de subidas pueden permitir archivos ejecutables.             |
| `PHP-SSRF-001`     | Alta      | La URL contaminada llega a sumideros HTTP, stream, socket o cURL.                              |
| `PHP-SQL-001`      | Alta      | La entrada contaminada llega a SQL sin procesar.                                               |
| `PHP-PATH-001`     | Alta      | La ruta contaminada llega a la lógica de lectura/escritura/eliminación/movimiento de archivos. |
| `PHP-CALLBACK-001` | Alta      | Un nombre de función o método contaminado llega al despacho dinámico.                          |
| `PHP-CONFIG-001`   | Alta      | Una configuración peligrosa de PHP aumenta la explotabilidad.                                  |
| `PHP-PRIV-001`     | Crítica   | La ejecución de PHP tiene SUID, sudo, cron o un contexto privilegiado.                         |

## Triaje rápido

| Pregunta                                                                   | Aumento de severidad                |
| -------------------------------------------------------------------------- | ----------------------------------- |
| ¿Pueden los datos de la solicitud llegar a la función?                     | Elevar a Alto o Crítico.            |
| ¿La función ejecuta comandos, código PHP, includes o deserialización?      | Crítico.                            |
| ¿Toca archivos bajo la raíz web?                                           | Alto o Crítico.                     |
| ¿Acepta URLs, wrappers, hosts o puertos?                                   | Alto.                               |
| ¿Se ejecuta desde cron, sudo, SUID, trabajadores o hooks de despliegue?    | Crítico.                            |
| ¿La validación se basa en listas de bloqueo, solo extensiones o solo MIME? | Eleva un nivel.                     |
| ¿El valor se selecciona de una lista de अनुमति estricta?                   | Reduce la confianza o la severidad. |

## Indicadores de escalada de privilegios

| Señal                                                         | Riesgo                                                                               |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| Binario PHP SUID                                              | PHP puede ejecutarse con privilegios elevados del propietario del archivo.           |
| La regla de sudo permite PHP                                  | El usuario puede ejecutar PHP como otro usuario.                                     |
| Un cron propiedad de root ejecuta PHP escribible              | Un script escribible puede convertirse en una ejecución privilegiada.                |
| Raíz web escribible                                           | Un error de escritura de archivos o subida puede convertirse en ejecución de código. |
| Secretos legibles por todos                                   | Las credenciales de la aplicación pueden permitir movimiento lateral.                |
| Los scripts de Composer se ejecutan como usuario privilegiado | La ejecución de dependencias o scripts puede afectar al despliegue.                  |

## Plantilla de informe

```json
{
  "id": "PHP-CMD-001",
  "severity": "crítica",
  "function": "shell_exec",
  "file": "app/Controllers/ReportController.php",
  "line": 84,
  "source": "$_POST['format']",
  "impact": "Ejecución remota de comandos como el usuario del servidor web",
  "fix": "Sustituye la ejecución de comandos por una biblioteca nativa de PHP o por argumentos estrictamente permitidos por la lista."
}
```

## Lista de verificación del analizador

* Analizar `.php`, `.inc`, `.phtml`, `.module`, `.theme`, rutas del framework, controladores, trabajos y scripts CLI.
* Rastrea la entrada basada en solicitud, cookie, subida, cabecera, cuerpo en bruto, CLI, entorno, base de datos, caché, cola y archivos.
* Detecta sumideros de ejecución de comandos, ejecución de código, include, archivos, red, SQL, deserialización, subida, callback, depuración y configuración.
* Puntúa los hallazgos con accesibilidad, saneamiento, versión de PHP, configuración, raíz web, permisos y contexto de ejecución.
* Exporta nombre de función, categoría, severidad, origen, sumidero, archivo, línea, impacto, confianza y corrección.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/es/hacking-tools/web/php-security-scanner.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
