Skip to content

Releases: msrenan/FileSearch

Release - v2.0

Choose a tag to compare

@msrenan msrenan released this 28 Aug 00:29
76a1caf

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 - v1.0.0 Pre-release
Pre-release

Choose a tag to compare

@msrenan msrenan released this 26 Aug 21:42

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