-
Period: to
Estágio - WeMake, Roboyo
Progresso em PenTesting Reporting Tool -
Period: to
Fase 1 - User Management
Esta fase marca o inicio do projeto com o intuito de me adaptar a Laravel e desenvolver a gestão de utilizadores e acessos à aplicação -
Início de estágio Roboyo
Recomendado iniciar com curso de introdução a Laravel no LaraCast. -
Dia #2 - Presencial
Neste primeiro dia em escritório tive a oportunidade de acompanhar a equipa de cibersegurança num dia normal de trabalho.
Recebi portátil da empresa onde formatei e instalei:
VSC, MySQL, TablePlus, Composer, PHP 8 e Laravel.
Abrir também um repositório no Git e iniciei um projecto Laravel. -
Dia #4
Continuação de curso LaraCast
Criação de Base de Dados
Pequenos testes -
Dia #6 - Sistema de Login
Inicio do desenvolvimento de sistema de autenticação
Diversos problemas de backend -
Dia #7 - Bcrypt
Avanços de UI/UX na autenticação
Correção de erros de backend
Encriptação automática de passwords com bcrypt Obs: Bcrypt é basead na cifra Blowfish e usa Salt -
Dia #8 - Migrations, Seeding e Factory
Continuação de LaraCasts.
Reformatação de base de dados
Criação de: Migrations, Seeding e Factory
Inicio da ligação backend para registo de novos utilizadores -
Dia #9 - Form Validation
Aplicação de form validation aos forms desenvolvidos (login & registo)
Desenvolvimento de mutators e acessores
Desenvolvimento de funcionalidades para aumentar UX como session saver e timeout flash
Frontent de botão de Logout -
Dia #10 - Middleware
Estudo e aplicação de middleware para controlar acessos
Sistemas de registo, login, e funcionalidade de logout funcionais
Ajuste de UI -
Dia #13 - Aplicação de requisito: Tipos de utilizadores
Modelação de base de dados, migrations e seeders com o intuito de prever 3 tipos de utilizadores: PenTesters, Managers e Admins.
Ajuste de UI -
Dia #14 - Dashboard & Menu
Desenvolvimento de Dashboard e Menu em conformidade com fase B1
Alteração a middleware para direcionar utilizadores não autenticados para menu de login
Menu dinamico em conformidade com grau de previlégio de utilizador -
Dia #16 - Status de utilizador
Adicionados novos campos na base de dados para monitorizar utilizador.
Role: Qual a sua função ?
Ativo: Utilizador está bloqueado por admin?
Password_reset: Flag para obrigar a alterar password
Inicio de user table -
Dia #17 - User management
Melhoramento da tabela de utilizadores
Adição de botão DELETE
Middleware para gerir acessos exclusivos a admin
Middleware para gerir acessos exclusivos a managers
Redirecionar para 403 caso seja utilizador basico a tentar acessar áreas de admin/manager
Inicio de Push notifications -
Dia #20 - Password Reset
Desenvolvimento de sistema de password reset através de tokens enviados para e-mail de utilizador (mailtrap.io).
Alterações estruturais a pedido de Eng. Rui Carreira. -
Dia #23 - Password Reset ✅
Finalização de password reset após algumas dificuldades devido a funções nativas de Laravel que formatavam dados de forma incorrecta.
Ajustes de UI
Inicio de componente "modal button" para adicionar utilizadores -
Dia #28 - Admin cria novo utilizador
Alterações backend e frontend para garantir que admin consegue adicionar novos utilizadores
Nova flashmessage para caso de erro
Nova validações frontend e backend -
Dia #29 - Alterar, Bloquear e Editar
Desenvolvida capacidade de bloquear utilizador
Possibilidade de admin editar perfil de utilizador
Corrigidas vulnerabilidades de segurança (informação que email estava ou não registado na app)
UI para sinalizar utilizadores bloqueados -
Dia #31 - User profile
Inicio de perfil de utilizador
Breadcrumbs
Paginação em nas listas
Update de UI -
Period: to
Fase 2 - Client Management
Com os progressos da fase 1 várias features foram aplicadas aqui, com o aumenta da complexidade e restrições algumas features desta fase foram implementadas na anterior. -
Segundo mês, dia #4 - Continuação de User profile
Trabalho de FE e BE para upload de foto de utilizador
Script de para preview de foto antes de registar -
Dia #5 - Restrição de ações
Adicionadas algumas restrições de backend como:
- Delete / block de admin apenas é possível se existir um ou mais admins sem imposições.
- Force password reset não permite utilizador progredir sem alterar para uma password diferente da anterior -
Dia #12 - Features
Feature para prevenir admin editar outro sem haver pelo menos 2 admins ativos
Feature de primeiro login utilizador ser obrigado a alterar palavra-chave
Possibilidade de escalar permissões na criação de utilizador -
Dia #17 - STAR UML
Desenvolvimento de base de dados em UML para melhor entendimento e desenvolvimento de produto final. -
Dia #18 - Várias features
Sortable table para organizar por ordem alfabética
Action buttons para admin e managers
Linkable Breadcrumbs
Modal para adicionar clientes -
Dia #19 - Restrições de inputs
Verificação e alteração da base de dados para restringir inputs como max chars, chars em campos de contato telefónico, etc... -
Dia #26 - Tabela de contatos e AJAX
Criada infraestrutura para uma tabela de contatos pertencentes a um cliente.
Inicio de desenvolvimento de tabela AJAX para adicionar, editar e remover contatos de forma assincrona. -
Mes #3, Dia #3 - Extração de add contact para componente
Continuo melhoramento da tabela contacts
Desenvolvimento de add contact -
Dia #11 - Pequenas features
Quando falha validação, modal volta a abrir.
Melhoramento de UI
Melhorada tabela de clientes
Mensagens de notificação na alteração, adição e remoção de contacto -
Dia #16 - Alteração de perfil de cliente
Implementação de 4 dropdown menus:
Contatos
Alterar perfil
Status
Assessements -
Dia #18 - Validação em AJAX
Script a prever todo o tipo de validação de dados necessária para a tabela de contatos.
** Verificar se é email válido
Verificar se é numero válido
Verifica se não contem caracteres inválidos em todos os campos
Verificar se não existem keywords no input, evitando assim OR loads entre outros riscos** -
FIM - Hosting e relatório
Início de relatório
Início de documentação
Tentativa de hosting em:
- FreeInfinity ❌
- 00webhosting ❌
- Fly.io ❌
- Railway ❌
- Google Cloud App Engine