varias alteracoes
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-06 14:50:12 +02:00
parent 4f35313d06
commit e65cb26901
333 changed files with 54656 additions and 2058 deletions
+53 -1
View File
@@ -75,7 +75,54 @@ executar `php artisan queue:restart` após alterações. Não executar outro sup
para este mesmo worker. Configurar rotação de logs Laravel e monitorização de jobs
falhados e espaço em disco; a aplicação não remove o histórico de auditoria.
## 5. Verificação final
## 5. Análise antimalware de documentos
Instalar ClamAV pelo gestor de pacotes suportado pela distribuição (`clamav`,
`clamav-daemon` e `clamav-freshclam`). Rever e incorporar os limites de
`clamd.conf` e `freshclam.conf` deste directório nos ficheiros da distribuição;
preservar as restantes opções de serviço. O `TCPSocket` deve escutar apenas em
`127.0.0.1:3310` neste perfil co-localizado. Nunca publicar a porta 3310 no
Nginx nem na firewall. O modelo de Docker usa uma rede privada própria e não
tem mapeamento de porta para o host.
Actualizar as assinaturas e iniciar os serviços:
```sh
sudo freshclam
sudo systemctl enable --now clamav-daemon clamav-freshclam
sudo ss -ltnp | grep ':3310'
sudo -u www-data php artisan malware:health
```
Verificar que `malware:health` mostra o motor e a data das assinaturas dentro da
janela configurada. A aplicação devolve `inconclusive` se o serviço estiver
indisponível ou as assinaturas estiverem antigas. A fila continua a receber o
upload privado; não o activa nem publica. `investemoz-queue.service` processa a
mesma fila usada pela aplicação. O timeout do job (150 s) fica abaixo do
`retry_after` recomendado (210 s).
Após aplicar a migração de antimalware, listar documentos existentes sem uma
análise registada e despachar lotes pequenos:
```sh
php artisan documents:scan-pending --limit=50
php artisan documents:scan-pending --limit=50 --apply
```
O primeiro comando só conta registos. O segundo coloca até cinquenta análises
na fila e pode ser repetido; não muda a revisão editorial nem publica conteúdo.
Monitorizar a fila, falhas, estados no painel de Documentos e o log do serviço.
Para recuperar uma fila falhada, corrigir primeiro ClamAV/assinaturas e então
usar `php artisan queue:retry all` ou a acção de nova tentativa no painel.
Ficheiros infectados e inconclusivos permanecem privados; não são apagados.
`malware_scan_status=clean` significa somente que ClamAV não detectou ameaça
nos bytes cujo hash está registado. Não equivale a garantia de segurança nem
altera a publicação. Para o ambiente Linux real, confirmar primeiro distribuição,
pacotes e unidades systemd; este repositório não tem acesso a esse servidor e,
por isso, não o declara configurado.
## 6. Verificação final
```sh
cd /var/www/investemoz
@@ -94,3 +141,8 @@ Testar restauração de backup numa instância separada antes de colocar dados r
Referências: [Nginx try_files](https://nginx.org/en/docs/http/ngx_http_core_module.html#try_files),
[systemd.service](https://www.freedesktop.org/software/systemd/man/latest/systemd.service.html).
Os uploads ZIP e Office Open XML também requerem a extensão PHP `ZipArchive`
(`php8.5-zip` em pacotes Debian compatíveis). O Laravel aplica um limite separado
de 100 MiB de expansão declarada e 1.000 entradas antes de pedir a análise ao
ClamAV. Sem suporte ZIP, estes ficheiros ficam inconclusivos; nunca são aprovados.