Uma poderosa aplicação em Node.js que detecta requisições HTTP maliciosas em tempo real utilizando padrões inteligentes de detecção via middleware e Socket.IO para alertas de segurança em tempo real.
Este projeto demonstra mecanismos de detecção de segurança nível enterprise utilizados em APIs reais. Ele identifica e bloqueia ataques comuns da web enquanto fornece notificações em tempo real via WebSocket.
Finalidade Educacional: Este projeto foi criado para ensinar conceitos de cibersegurança e deve ser utilizado apenas para fins educacionais/demonstração.
✅ Detecção de SQL Injection ✅ Detecção de XSS (Cross-Site Scripting) ✅ Proteção contra Força Bruta ✅ Rate Limiting (anti-flood/DoS) ✅ Alertas em Tempo Real (Socket.IO) ✅ Bloqueio por IP ✅ Arquitetura limpa e modular ✅ Dashboard interativo
O que é: Injeção de código SQL para manipular consultas ao banco de dados.
Como detecta:
- ' OR 1=1
- UNION SELECT
- DROP TABLE
- ; DELETE FROM
- -- ou /* */Exemplos de ataque:
?search=' OR 1=1 --
?user=admin' UNION SELECT * FROM users --
?id=1; DROP TABLE users;
Endpoint: GET /search?q=PAYLOAD
O que é: Execução de JavaScript malicioso no navegador do usuário.
Detecta:
- <script>
- javascript:
- onerror=
- onload=
- <iframe>Exemplos:
<script>alert('XSS')</script>
<img src=x onerror="alert(1)">Endpoint: POST /comment
O que é: Tentativas repetidas de login para descobrir senhas.
Configuração:
- 5 tentativas falhas → bloqueio
- Bloqueio de 15 minutosEndpoint: POST /login
O que é: Envio massivo de requisições para derrubar o servidor.
Configuração:
- 60 requisições por minuto por IPseg/
├── server.js
├── middleware/
│ └── securityDetector.js
├── routes/
│ └── demoRoutes.js
├── utils/
│ ├── threatDetector.js
│ └── ipTracker.js
├── public/
│ └── index.html
├── package.json
└── README.md
npm install
npm startAcesse:
http://localhost:3000
GET /health
GET /api/docs
POST /login
GET /search?q=test
POST /comment
GET /status
curl "http://localhost:3000/search?q=test' OR 1=1"curl -X POST http://localhost:3000/comment \
-d '{"post_id":1,"comment":"<script>alert(1)</script>"}'# executar várias vezes
curl -X POST http://localhost:3000/login \
-d '{"username":"admin","password":"wrong"}'socket.on('attack:detected', (data) => {
console.log(data);
});this.config = {
requestsPerMinute: 60,
failedLoginThreshold: 5,
blockDurationMinutes: 15
};- Validação de entrada
- Rate limiting
- Bloqueio por IP
- Detecção por padrões
- Monitoramento em tempo real
- Arquitetura modular
MIT
Bora evoluir na cibersegurança 🚀🛡️