Referencia de comandos CLI
Ejecute php scanner --help para ver todas las opciones disponibles.
php scanner [path] [options]
Detección
| Opción | Propósito |
|---|---|
--lite, -l | Reduce falsos positivos comunes |
--only-signatures, -s | Escanea solo por firmas de malware |
--only-exploits, -e | Escanea solo por patrones de exploit |
--only-functions, -f | Escanea solo por funciones PHP peligrosas |
--scan-all, --all | Inspecciona todos los archivos sin importar la extensión |
--scan-archives | Inspecciona archivos ZIP dentro de límites seguros |
--scan-wordpress-db | Comprueba la base de datos local de WordPress en solo lectura |
Revisión de hallazgos con IA
La revisión con IA está desactivada de forma predeterminada. Cuando se activa, AMWScan solicita al proveedor seleccionado un veredicto consultivo malware, false_positive o uncertain después de que termine la detección. Cada solicitud contiene la regla coincidente y un fragmento de código limitado en torno a la línea detectada. Nunca cambia el estado del hallazgo ni modifica archivos automáticamente.
| Opción | Propósito | Predeterminado |
|---|---|---|
--ai-provider=<provider> | Usa openai, anthropic, gemini, claude-code-cli, codex-cli, copilot-cli u opencode-cli | disabled |
--ai-model=<model> | Sustituye el modelo del proveedor o de la CLI instalada | Predeterminado del proveedor |
--ai-context-lines=<number> | Incluye de 0 a 20 líneas por encima y por debajo de la detección | 5 |
--ai-max-findings=<number> | Limita los intentos de revisión por análisis a entre 1 y 100 | 20 |
--ai-timeout=<seconds> | Limita cada solicitud al proveedor a entre 5 y 300 segundos | 30 |
--ai-executable=<path> | Sustituye el ejecutable utilizado por un proveedor de CLI instalada | Comando del proveedor |
Las claves de API se leen de OPENAI_API_KEY, ANTHROPIC_API_KEY o GEMINI_API_KEY. AMWSCAN_AI_API_KEY sustituye la variable específica del proveedor. Las claves no se aceptan como opciones de comando porque los argumentos pueden aparecer en el historial del shell y en las listas de procesos.
GEMINI_API_KEY=your-key php scanner /var/www/example \
--report-only --report-format=json --ai-provider=gemini
php scanner /var/www/example --report-only \
--ai-provider=claude-code-cli --ai-model=claude-sonnet-4-5
Los valores predeterminados de las API directas son gpt-5.6-luna, claude-haiku-4-5 y gemini-3.8-flash. Las integraciones de CLI instaladas invocan claude, codex, copilot u opencode sin un shell y en un directorio aislado. Normalmente envían fragmentos de código fuente a servicios de modelos remotos; que estén instaladas no significa que la inferencia sea local. Usa --ai-executable cuando el comando esté instalado con otro nombre o en otra ruta.
Informes y salida
| Opción | Propósito | Predeterminado |
|---|---|---|
--report, -r | Desactiva acciones interactivas y escribe un informe | Desactivado |
--report-format=<formato> | Selecciona html, txt, json o sarif | html |
--path-report=<ruta> | Establece la ruta del informe | ./scanner-report.html |
--silent | Oculta salidas y avisos en terminal | Desactivado |
Acciones de archivos
| Opción | Propósito |
|---|---|
--backup, -b | Realiza copia de seguridad de cada archivo modificado |
--auto-clean | Elimina código malicioso sin confirmación |
--auto-delete | Elimina archivos detectados sin confirmación |
--auto-quarantine | Mueve archivos detectados a cuarentena |
--auto-whitelist | Agrega coincidencias a la lista blanca |
Fuentes FTP
Usa una URL ftp://host/ruta o ftps://host/ruta como ruta de análisis. PHP necesita la extensión FTP y FTPS también requiere ftp_ssl_connect.
No incluyas credenciales en la URL. Define el nombre de usuario con --ftp-user o AMWSCAN_FTP_USER, y la contraseña con AMWSCAN_FTP_PASSWORD. Siempre que sea posible, usa FTPS, ya que FTP transmite las credenciales y el contenido de los archivos sin cifrar.
AMWSCAN_FTP_USER=scanner \
AMWSCAN_FTP_PASSWORD=secret \
php scanner ftps://files.example.com/public_html --report-only
Los análisis FTP usan una copia local temporal de solo lectura, fuerzan el modo de informe y eliminan la copia al terminar. Cada análisis admite una fuente FTP con límites de 10.000 archivos, 64 MiB por archivo y 512 MiB en total. Las fuentes FTP no se pueden usar con --scan-wordpress-db.