Scanner web em Blazor Server para analise passiva de vulnerabilidades em conteudo publico de um site.
- Receber uma URL.
- Coletar superficie publica (status HTTP, headers e HTML).
- Executar analisadores deterministicos.
- Opcionalmente enriquecer achados com IA.
- Persistir resultado localmente e mostrar score + achados na UI.
- .NET 8
- Blazor Server (Razor Components Interactive Server)
- Bootstrap (estilo base)
- Event Bus in-memory (EDA local)
- Tenha o .NET 8 SDK instalado.
- Na raiz do projeto, execute:
dotnet restore
dotnet build
dotnet run- Acesse a URL exibida no terminal (normalmente
https://localhost:xxxx).
Home.razorchamaScanDispatcher.RequestScanAsync(url, useAi).ScanDispatcherpublicaScanRequestednoIEventBus.InMemoryEventBusresolve e executaIEventHandler<ScanRequested>.ScanRequestedHandler:- extrai superficie publica (
IPublicSurfaceExtractor); - roda todos os
IVulnerabilityAnalyzer; - opcionalmente chama
IAiModel; - salva em
IScanReportRepository; - publica
ScanCompleted.
- extrai superficie publica (
Home.razorconsultaGetLastAsynceGetRecentAsyncpara renderizar resultado.
Components/- UI (pagina Home, rotas e layouts).
Application/- contratos e orquestracao de caso de uso (
ScanDispatcher, handlers).
- contratos e orquestracao de caso de uso (
Domain/- entidades/eventos (
ScanReport,ScanFinding,ScanRequested).
- entidades/eventos (
Infrastructure/- implementacoes tecnicas (event bus, extractor HTTP, analyzers, storage local, IA null).
docs/- backlog de proximas demandas.
SecurityHeadersAnalyzer- valida headers de seguranca (CSP, HSTS, X-Frame-Options etc.).
FingerprintAnalyzer- sinaliza exposicao de tecnologias via headers.
- Repositorio atual:
ScanReportRepositoryLocalStorage. - Armazenamento:
localStoragedo navegador viaIJSRuntime.
- Backlog completo em
docs/ISSUES_BACKLOG.md. - Foco sugerido: descoberta passiva (
robots/sitemap) e exposicao de lideranca (CEO/CTO/CISO).