O backend Express do Nexus10 centraliza a politica HTTP em:
backend/config/security.js
O bootstrap principal aplica essa configuracao em:
backend/app.ts
- apenas as origens de
FRONTEND_ORIGIN - credenciais habilitadas com
Access-Control-Allow-Credentials: true - preflight cacheado com
Access-Control-Max-Age - headers e metodos explicitamente declarados
Em desenvolvimento, localhost:5173 e 127.0.0.1:5173 continuam aceitos para nao quebrar o fluxo local.
Via helmet + header manual:
Strict-Transport-SecurityContent-Security-PolicyX-Frame-OptionsX-Content-Type-OptionsReferrer-PolicyPermissions-Policy
Tambem:
X-Powered-Byremovido
- blacklist de
User-Agentpara scanners conhecidos - validador customizado de origin
- enforcement de HTTPS em producao com base em
req.secureex-forwarded-proto
FRONTEND_ORIGIN
CORS_PREFLIGHT_MAX_AGE_SECONDSSECURITY_USER_AGENT_BLOCKLIST
Exemplo:
FRONTEND_ORIGIN=https://nexus10-seguro-copia-2026-03-092036.vercel.app
CORS_PREFLIGHT_MAX_AGE_SECONDS=600
SECURITY_USER_AGENT_BLOCKLIST=sqlmap,nikto,masscan,zgrab,acunetixOrdem aplicada no backend:
requestLoggercreateUserAgentGuard()createSecurityHeadersMiddleware()createHttpsEnforcementMiddleware()createCorsProtectionMiddleware()
Isso garante que requests suspeitas ou inseguras sejam barradas cedo.
Resposta:
{
"error": "Origem nao autorizada para esta API."
}Status:
403
Resposta:
{
"error": "User-Agent bloqueado pela politica de seguranca."
}Status:
403
Resposta:
{
"error": "HTTPS obrigatorio neste ambiente."
}Status:
426
Cobertura automatizada em:
backend/__tests__/security.test.js
Casos cobertos:
- headers de seguranca enviados
- CORS rejeita origem invalida
- preflight aceita origem valida
- HTTPS obrigatorio em producao
- blacklist de
User-Agent
- para
HSTSereq.securefuncionarem corretamente em producao, o proxy reverso deve enviarX-Forwarded-Proto: https app.set('trust proxy', true)ja esta habilitado no bootstrap- se o frontend publicado mudar,
FRONTEND_ORIGINprecisa ser atualizada antes do deploy