heath impl
This commit is contained in:
59
seguranca-melhorias.md
Normal file
59
seguranca-melhorias.md
Normal 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
|
||||
Reference in New Issue
Block a user