heath impl

This commit is contained in:
JurTI-BR
2025-04-02 19:31:13 -03:00
parent 15bb11fc4c
commit 8ba6f345c7
32 changed files with 2620 additions and 395 deletions

59
seguranca-melhorias.md Normal file
View File

@@ -0,0 +1,59 @@
# Melhorias de Segurança Implementadas
## 1. Proteção de Informações Sensíveis
- **Variáveis de Ambiente**: Removidas credenciais expostas do arquivo `.env` e substituídas por valores genéricos.
- **Gitignore**: Atualizado para garantir que arquivos `.env` não sejam acidentalmente versionados.
- **Exemplo de ENV**: Criado arquivo `.env.example` como modelo sem credenciais reais para ser versionado.
## 2. Proteção Contra Ataques de Força Bruta
- **Rate Limiting**: Implementado middleware `RateLimiterMiddleware` para limitar o número de requisições por IP e rota.
- **Throttler Integrado**: Configurado corretamente o ThrottlerModule do NestJS para rate limiting baseado em rotas.
- **Headers de Rate Limit**: Adicionados cabeçalhos HTTP para informar o cliente sobre limites de requisição.
- **Configuração Flexível**: Os limites de rate limiting são configuráveis via variáveis de ambiente (`THROTTLE_TTL` e `THROTTLE_LIMIT`).
- **Aplicação Seletiva**: Aplicado principalmente em rotas sensíveis como autenticação e usuários.
## 3. Validação e Sanitização de Dados
- **Validadores Personalizados**: Criados decorators `IsSanitized` e `IsSecureId` para validação rigorosa de entradas.
- **Middleware de Sanitização**: Implementado `RequestSanitizerMiddleware` para limpar automaticamente todos os dados de entrada.
- **Proteção Contra Injeções**: Adicionadas verificações contra SQL Injection, NoSQL Injection e XSS.
- **Validação Global**: Configuração de `ValidationPipe` com opções mais rigorosas no arquivo `main.ts`.
## 4. Cabeçalhos HTTP Seguros
- **Helmet**: Adicionado o middleware Helmet para configurar cabeçalhos HTTP seguros.
- **CORS Restritivo**: Configuração mais rigorosa para CORS, limitando origens em produção.
- **Headers de Segurança**: Adicionados headers para proteção contra XSS, clickjacking e sniffing.
## 5. Recomendações Adicionais
- **Ambiente de Produção**: A configuração de segurança diferencia entre desenvolvimento e produção.
- **Mensagens de Erro**: Desativação de mensagens de erro detalhadas em produção para evitar vazamento de informações.
- **Autenticação**: Configuração de tempo de expiração do JWT mais adequada para balancear segurança e experiência.
## Como Usar
Os novos recursos de segurança são aplicados automaticamente na aplicação. Para utilizar os validadores personalizados em DTOs, importe-os assim:
```typescript
import { IsSanitized, IsSecureId } from '../common/validators/sanitize.validator';
export class ExampleDto {
@IsSecureId()
id: string;
@IsSanitized()
@IsString()
content: string;
}
```
## Próximos Passos Recomendados
1. Implementar auditoria de segurança regular
2. Configurar autenticação de dois fatores
3. Realizar análise estática de código para buscar vulnerabilidades adicionais
4. Implementar verificação de força de senha
5. Adicionar proteção contra CSRF para operações sensíveis