25 lines
1.7 KiB
Markdown
25 lines
1.7 KiB
Markdown
# Ruby - Análise de ficheiros de auditoria de servidores web
|
|
|
|
## Objetivos do programa
|
|
|
|
- **Objetivo 1**: ~~Número de contactos que um determinado IP realizou~~ (Feito)
|
|
- **Objetivo 2**: ~~Quais IPs resultaram no maior número de erros de cliente (400-499)~~ (Feito)
|
|
- **Objetivo 3**: ~~Agrupar por tipo de cliente e saber que tipos de clientes contactam mais o site~~ (Feito)
|
|
|
|
### Sub-objetivos e desafios
|
|
|
|
- Agrupar visitas por IP por mês
|
|
- Exemplo: IP 5.15.124.2 visitou o site 20 veses em abril e gerou 4 erros no mesmo mês
|
|
- Criar funcionalidade para enviar denúncias ao AbuseIPDB (OPCIONAL)
|
|
- Recolher os três principais suspeitos e oferecer a escolha de denúncia ao utilizador (Ex. os IPs com mais erros suspeitos, excl. erros 404)
|
|
- Modo pesquisa (OPCIONAL)
|
|
- Oferecer ao utilizador uma forma de introduzir um IP para obter todas as estatísticas que o programa já oferece, e avisar caso o IP não tenha contactado o site
|
|
- Whois e reputação do IP (OPCIONAL)
|
|
- Modo não-interativo (OPCIONAL)
|
|
- Permitir que o utilizador controle o programa e o seu output através da linha de comandos (ex. rubystats --in access.log -i x.x.x.x -v -e)
|
|
- Garantir que o programa segue o [filosofia do Unix](https://en.wikipedia.org/wiki/Unix_philosophy)
|
|
- Menu interativo (OPCIONAL)
|
|
- Permitir ao utilizador escolher que estatística pretende visualizar
|
|
- Tornar o programa mais modular, fácil de manter e de expandir (OPCIONAL);
|
|
- Permitir que o utilizardor escolha que tipo de log pretende analisar (Nginx/Apache/Lightspeed/IIS, etc) utilizando as mesmas funções utilitárias
|
|
- Adicionar testes a todas as funções utilitárias de modo a garantir que produzem o mesmo output esperado independentemente da implementação (OPCIONAL) |