https://github.com/jamison0902/javascript-cybersecurity
Refatoração de Segurança em Aplicação
https://github.com/jamison0902/javascript-cybersecurity
javascript jwt postgresql
Last synced: 4 days ago
JSON representation
Refatoração de Segurança em Aplicação
- Host: GitHub
- URL: https://github.com/jamison0902/javascript-cybersecurity
- Owner: jamison0902
- Created: 2024-09-06T20:12:32.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-01T00:50:03.000Z (over 1 year ago)
- Last Synced: 2025-09-06T11:51:43.297Z (10 months ago)
- Topics: javascript, jwt, postgresql
- Language: JavaScript
- Homepage:
- Size: 1.18 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Introdução
Este projeto tem o objetivo verificar a vulnerábilidade de um sistema de autenticação para gerenciar o acesso de usuários a uma API, utilizando JSON Web Tokens (JWT). O projeto aborda a criptografia de dados sensíveis, controle de sessão por meio de tokens, validação de perfis de usuário e implementação de segurança robusta, protegendo contra vulnerabilidades como token hijacking e SQL injection.
## Recursos
- Linguagem de programação JavaScript;
- Banco de Dados Open Source PostgreSQL;
- Versionado através do Git / Github;
- Postman
## Orientação
* O arquivo **mission.sql** contém uma cópia do banco utilizado.
## Executar e Testar
Para iniciar o servidor, navegue até a pasta aonde descompactou o aquivo através do cmd e execute:
```
node index.js
```
- Agora, siga os passos no Postman para testar a API.
## Testando a API no Postman
- Abra o Postman e crie uma nova requisição POST para o endpoint http://localhost:3000/api/auth/login.
- No Body, escolha a opção raw e altere para JSON.
- Envie os seguintes dados no corpo da requisição:
```
{
"username": "admin",
"password": "123456"
}
```
- Isso retornará um token JWT, que será usado nas próximas requisições.

## Testar Requisição Protegida (Recuperar Usuário Logado)
- Crie uma nova requisição GET para o endpoint http://localhost:3000/api/me.
- Na aba Authorization, selecione o tipo Bearer Token e insira o token JWT gerado no login anterior.
- Envie a requisição. Se o token for válido, você verá os dados do usuário logado.

## Testar o Controle de Acesso (Recuperar Contratos)
- Crie uma nova requisição GET para o endpoint http://localhost:3000/api/contracts/{empresa}/{inicio}.
- Exemplo Usado: http://localhost:3000/api/contracts/Ragatanga/2024-05-12.
- Na aba Authorization, selecione novamente o tipo Bearer Token e insira o token JWT do login de um usuário com perfil de admin.
- Se tudo estiver correto, você deverá receber os contratos cadastrados no banco de dados para a empresa e data fornecidos.
