Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ricardo-benicio/rubyguard
RubyGuard - Application for test technical for company available.
https://github.com/ricardo-benicio/rubyguard
development devise devise-jwt postgresql rspec ruby ruby-on-rails
Last synced: 8 days ago
JSON representation
RubyGuard - Application for test technical for company available.
- Host: GitHub
- URL: https://github.com/ricardo-benicio/rubyguard
- Owner: ricardo-benicio
- Created: 2023-11-29T19:12:22.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-17T18:13:13.000Z (about 1 year ago)
- Last Synced: 2024-11-28T09:44:22.584Z (2 months ago)
- Topics: development, devise, devise-jwt, postgresql, rspec, ruby, ruby-on-rails
- Language: Ruby
- Homepage:
- Size: 695 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Documentação Técnica - Projeto RubyGuard
## Introdução
O Projeto RubyGuard é uma aplicação backend desenvolvida para demonstrar a capacidade técnica e criativa do candidato, com ênfase especial na segurança e na consideração das vulnerabilidades típicas de aplicações backend.### Gems de Autenticação - Devise e Devise-JWT
Para garantir uma autenticação robusta e segura, o RubyGuard utiliza as gems 'Devise' e 'Devise-JWT'. Abaixo, detalhamos a funcionalidade proporcionada por cada uma:#### A gem 'Devise' é uma solução completa para autenticação de usuários no ambiente Ruby on Rails. Oferece funcionalidades essenciais, como login, registro, recuperação de senha e gerenciamento de sessão. Suas principais características incluem:
- Flexibilidade de Configuração: Devise permite uma configuração flexível para atender às necessidades específicas do projeto.
- Gestão de Sessões: Controle de sessões de usuário, incluindo a capacidade de encerrar sessões remotamente.
- Segurança: Implementa boas práticas de segurança, incluindo hashes seguros para senhas e proteção contra ataques de força bruta.#### A gem 'Devise-JWT' é uma extensão do Devise que adiciona suporte para JSON Web Tokens (JWT). JWT é um padrão aberto (RFC 7519) que oferece uma forma compacta e segura de representar informações entre duas partes. As principais características incluem:
- Token-Based Authentication: Utilização de tokens JWT para autenticação, proporcionando uma alternativa eficiente ao uso de sessões tradicionais.
- Escalabilidade e Desempenho: Redução do uso de recursos do servidor, tornando a autenticação mais escalável.
- Expiração de Token: Configuração de expiração para tokens, aumentando a segurança da aplicação.## Configuração do Ambiente
- Para configurar o ambiente de desenvolvimento, siga as instruções abaixo:### Requisitos:
- Ruby 3.2.2
- Rails 7.1.2
- PostgreSQL### Instalação de Dependências:
```bash
bundle install
npm install
exec foreman start -f Procfile.dev
```### Configuração do Banco de Dados:
```bash
rails db:create db:migrate
```## Segurança e Vulnerabilidade
- O RubyGuard adota diversas práticas de segurança para proteger a aplicação contra vulnerabilidades comuns. Alguns pontos destacados incluem:### Autenticação Segura:
- Utilização da gem Devise para garantir autenticação robusta. A lógica de autenticação é testada de maneira abrangente para evitar falhas de segurança.### Proteção contra CSRF:
- A aplicação utiliza o mecanismo padrão do Rails para proteção contra ataques CSRF.### Logs de Auditoria:
- Implementação de logs para eventos importantes, como login bem-sucedido.### Segurança da Sessão:
- A sessão do usuário é regenerada após autenticação para evitar manipulações indevidas.### Limitação de Tentativas de Login:
- Mecanismo para detectar e bloquear tentativas repetidas de login.## Testes
O RubyGuard possui testes automatizados que cobrem:Modelos, controladores e serviços.
```bash
bundle exec rspec
```