# Guia de Hardening

## Apache/Webroot

- Denegar `composer.*`, `*.zip`, `*.tar`, `*.gz`, `*.sql`, `*.bak`, `*.old`, `*.log` en `/admin`.
- Denegar `/admin/migrate`, `/admin/pkg`, `/admin/test`, `/admin/packages` salvo excepciones justificadas.
- Desactivar directory listing globalmente.
- Restringir `vtigercron.php` a CLI/IP local.

## PHP

- `display_errors=Off` en produccion.
- `log_errors=On` con ruta fuera de webroot.
- `session.cookie_secure=1`, `session.cookie_httponly=1`, `session.cookie_samesite=Lax`.
- Limitar `upload_max_filesize` y `post_max_size` segun negocio.
- Deshabilitar ejecucion PHP en uploads con reglas compatibles con PHP-FPM/lsapi.

## Vtiger

- Revisar `config.security.php`.
- Confirmar permisos de `user_privileges/`, `storage/`, `logs/`, `cache/`.
- Revisar usuarios admin, roles, sharing y perfiles.
- Documentar custom modules antes de modificar core.

## Headers

- HSTS tras confirmar HTTPS estable.
- `X-Frame-Options: SAMEORIGIN` o CSP `frame-ancestors`.
- `X-Content-Type-Options: nosniff`.
- `Referrer-Policy: strict-origin-when-cross-origin`.
- CSP gradual con report-only antes de enforce.

## KCFinder/Uploads

- Deshabilitar anonimo por servidor.
- Mover uploadDir fuera de `test/upload`.
- Denegar PHP/SVG ejecutable en uploads.
- Validar MIME real y extension.

## Composer

- No exponer manifests ni vendor internals.
- Mantener Composer en entorno de build/staging, no ejecutar actualizaciones directas en produccion.
