Skip to content

Nego90/keysistem

Repository files navigation

Painel de Gerenciamento de Chaves - PyIt Este é um painel de controle web seguro e completo, desenvolvido para gerenciar e validar chaves de acesso para aplicações externas, como o projeto PyIt. A plataforma é exclusiva para administradores, garantindo um ambiente controlado para a gestão das licenças de software.

O design é moderno, responsivo e construído com as melhores práticas de segurança em mente.

✨ Funcionalidades Autenticação Segura: Sistema de login exclusivo para administradores com senhas criptografadas.

Gerenciamento de Usuários: Administradores logados podem registrar novas contas de administrador.

Gerenciamento de Chaves:

Criação de chaves de acesso únicas e seguras.

Associação de cada chave a um nome de usuário específico.

Definição de uma data de validade para cada chave.

Dashboard central para visualizar, buscar e deletar chaves.

Validação via API:

Um endpoint api.php para que aplicações externas (como a aplicação Python) possam validar uma chave remotamente.

A API verifica se a chave existe, está ativa e se não expirou.

Segurança Robusta:

Proteção contra SQL Injection usando PDO com Prepared Statements.

Senhas armazenadas com o algoritmo de hash Argon2id, o mais recomendado atualmente.

Proteção contra ataques CSRF (Cross-Site Request Forgery) em todos os formulários.

Rate Limiting na API para prevenir ataques de força bruta.

Interface Moderna:

Design responsivo e elegante construído com Bootstrap 5.

Tema escuro para conforto visual.

Calendário amigável (flatpickr) para seleção de datas.

🚀 Tecnologias Utilizadas Backend: PHP 8+

Banco de Dados: MySQL / MariaDB

Frontend: HTML5, Bootstrap 5, flatpickr.js

🛠️ Instalação Siga os passos abaixo para configurar o painel em um servidor local ou de produção.

Requisitos:

Servidor web (Apache, Nginx, etc.)

PHP 8 ou superior (com extensão PDO MySQL)

Banco de dados MySQL ou MariaDB

Passo a passo:

Copie os Arquivos: Coloque todos os arquivos do projeto no diretório do seu servidor web (ex: htdocs no XAMPP ou /var/www/html no Linux).

Crie o Banco de Dados: Crie um novo banco de dados no seu servidor MySQL (ex: key_panel).

Importe as Tabelas: Execute o código SQL abaixo para criar as tabelas users, keys e api_logs.

SQL

CREATE TABLE users ( id int(11) NOT NULL AUTO_INCREMENT, username varchar(255) NOT NULL, password varchar(255) NOT NULL, role varchar(50) NOT NULL DEFAULT 'admin', created_at timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (id), UNIQUE KEY username (username) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE keys ( id int(11) NOT NULL AUTO_INCREMENT, access_key varchar(255) NOT NULL, assigned_user varchar(255) NULL, status varchar(50) NOT NULL DEFAULT 'active', expires_at DATE NULL, created_at timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (id), UNIQUE KEY access_key (access_key) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE api_logs ( id int(11) NOT NULL AUTO_INCREMENT, ip_address varchar(45) NOT NULL, request_time timestamp NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Configure a Conexão: Abra o arquivo db.php e insira as credenciais do seu banco de dados.

Crie o Primeiro Administrador: a. Crie um arquivo temporário chamado hash_password.php com o código abaixo e coloque-o no servidor.

PHP

'; ?>

b. Acesse hash_password.php no navegador e copie o hash gerado. c. Execute o SQL abaixo, colando o seu hash no lugar de 'SEU_HASH_AQUI'.

SQL

INSERT INTO users (username, password, role) VALUES ('admin', 'SEU_HASH_AQUI', 'admin'); d. Delete o arquivo hash_password.php do servidor.

Pronto! Acesse o index.php do projeto no seu navegador para fazer o login.

📡 Endpoint da API A aplicação externa deve fazer uma requisição GET para validar uma chave.

URL: http://seu-dominio.com/api.php?key=PYIT-CHAVE-A-SER-VALIDADA

Respostas da API Sucesso (Chave Válida):

JSON

{ "status": "success", "message": "Chave valida" } Erro (Chave Inválida, Expirada ou Inativa):

JSON

{ "status": "error", "message": "Chave invalida" } JSON

{ "status": "error", "message": "Chave expirada" } Erro (Limite de Requisições Excedido):

JSON

{ "status": "error", "message": "Muitas requisicoes. Tente novamente mais tarde." }

About

keysystem para mods menu

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages