Releases: msrenan/FileSearch
Releases · msrenan/FileSearch
Release list
Release - v2.0
Release
Essa versão contém o Servidor e o Reverse Proxy funcionando segundo especificações abaixo:
Features do Projeto
Servidor
- Recebe requisições com um padrão customizado, interpreta e devolve uma resposta.
- Valida se a requisição veio do reverse proxy usando uma 'criptografia' (não sei se da pra chamar disso) :
- Ao se iniciar o server e o reverse proxy, o server vai mandar um POST request regitrando uma chave SHA-256 gerada aleatóriamente no reverse proxy.
- Após o registro, o server começa a verificar todas as requests, procurando um valor de X-Proxy-Signature que seja equivalente a chave registrada no proxy anteriormente.
Reverse Proxy
- Recebe requisições com o padrão do navegador, interpreta e customiza elas antes de repassá-las para o servidor.
- Recebe a chave SHA-256 do servidor ao ser iniciado, armazena ela, e assina todas suas requests personalizadas com ela.
- Faz o parsing das requests para torná-las customizadas
Gerais
- Ao tentar acessar o servidor direto pelo seu ip, é retornada uma página 403 - Forbidden.
- O server fica tentando registrar a chave de assinatura no reverse proxy até que ele consiga. Ele não funcionará enquanto a chave não for registrada.
- O reverse proxy foi programado usando multi-threads (sem limite máximo de usuários) para que possa ser acessado por múltiplos dispositivos simultaneamente.
- O reverse proxy está sendo hospedado em 0.0.0.0, o que possibilita que ele seja acessado pelo celular (achei que ia ser legal ver os arquivos pelo cel).
Algumas especificações
Libs usadas e estrutura de projeto
- Foram feitos dois projetos utilizando o cargo: server e reverse-proxy, cada um deles armazenando seu respectivo sistema.
- Dentro de cada projeto foram utilizadas as seguintes libs externas (dependencies):
- rand = 0.9.2
- sha2 = 0.10.9
- digest = 0.10
- hex = 0.4
- colored = 3
Além, claro, dos pacotes da standard lib do Rust: - std::fs
- std::net
- std::io;
- std::thread
- std::path
- std::sync
- As páginas .html estão todas dentro de uma pasta chamada /pages/, dentro do projeto do servidor.
- Os arquivos que podem ser acessados devem estar dentro de uma pasta /data/, dentro do projeto do servidor.
Manual de Uso
Segue abaixo alguns detalhes sobre o uso deste projeto:
- Inicie o Servidor e o Reverse Proxy (em qualquer ordem)
- Não esqueça de baixar as dependências do projeto antes de iniciá-lo.
- Recomenda-se iniciar ambos em dois terminais dividindo a mesma tela
- Utilize o IPV4 da máquina que rodará o servidor para se conectar ao sistema por outros dispositivos que não sejam a máquina que roda o sistema
- Utilize a porta 2006 para se conectar ao sistema
- O sistema DEVE ser acessado pelo navegador
- Caso deseje fazer upload de um arquivo, certifique-se que ele está na extensão '.txt' e que seu nome não possua espaços
- O número máximo de dispostivos conectados depende do número de threads que sua máquina aguenta
Full Changelog: https://github.com/TaldoCrey/psel/commits/v2.0.0
Pre-Release - v1.0.0
Pre-Release
Essa versão contém o Servidor e o Reverse Proxy funcionando segundo especificações abaixo:
Features do Projeto
Servidor
- Recebe requisições com um padrão customizado, interpreta e devolve uma resposta.
- Valida se a requisição veio do reverse proxy usando uma 'criptografia' (não sei se da pra chamar disso) :
- Ao se iniciar o server e o reverse proxy, o server vai mandar um POST request regitrando uma chave SHA-256 gerada aleatóriamente no reverse proxy.
- Após o registro, o server começa a verificar todas as requests, procurando um valor de X-Proxy-Signature que seja equivalente a chave registrada no proxy anteriormente.
Reverse Proxy
- Recebe requisições com o padrão do navegador, interpreta e customiza elas antes de repassá-las para o servidor.
- Recebe a chave SHA-256 do servidor ao ser iniciado, armazena ela, e assina todas suas requests personalizadas com ela.
- Faz o parsing das requests para torná-las customizadas
Gerais
- Ao tentar acessar o servidor direto pelo seu ip, é retornada uma página 403 - Forbidden.
- O server fica tentando registrar a chave de assinatura no reverse proxy até que ele consiga. Ele não funcionará enquanto a chave não for registrada.
- O reverse proxy foi programado usando multi-threads (sem limite máximo de usuários) para que possa ser acessado por múltiplos dispositivos simultaneamente.
- O reverse proxy está sendo hospedado em 0.0.0.0, o que possibilita que ele seja acessado pelo celular (achei que ia ser legal ver os arquivos pelo cel).
Algumas especificações
Libs usadas e estrutura de projeto
- Foram feitos dois projetos utilizando o cargo: server e reverse-proxy, cada um deles armazenando seu respectivo sistema.
- Dentro de cada projeto foram utilizadas as seguintes libs externas (dependencies):
- rand = 0.9.2
- sha2 = 0.10.9
- digest = 0.10
- hex = 0.4
- colored = 3
Além, claro, dos pacotes da standard lib do Rust: - std::fs
- std::net
- std::io;
- std::thread
- std::path
- std::sync
- As páginas .html estão todas dentro de uma pasta chamada /pages/, dentro do projeto do servidor.
- Os arquivos que podem ser acessados devem estar dentro de uma pasta /data/, dentro do projeto do servidor.
Manual de Uso
Segue abaixo alguns detalhes sobre o uso deste projeto:
- Inicie o Servidor e o Reverse Proxy (em qualquer ordem)
- Não esqueça de baixar as dependências do projeto antes de iniciá-lo.
- Recomenda-se iniciar ambos em dois terminais dividindo a mesma tela
- Utilize o IPV4 da máquina que rodará o servidor para se conectar ao sistema por outros dispositivos que não sejam a máquina que roda o sistema
- Utilize a porta 2006 para se conectar ao sistema
- O sistema DEVE ser acessado pelo navegador
- Caso deseje fazer upload de um arquivo, certifique-se que ele está na extensão '.txt' e que seu nome não possua espaços
- O número máximo de dispostivos conectados depende do número de threads que sua máquina aguenta
Full Changelog: https://github.com/TaldoCrey/psel/commits/v1.0.0