Ir ao conteúdo
  • Cadastre-se
SuellenOl

Como saber se o programa roda em notebook ou desktop?

Recommended Posts

Bom dia!

Preciso bloquear um sistema no notebook para certos usuários na minha empresa, não posso bloquear ou liberar por IP pois o sistema é na nuvem e o firewall bloqueia o acesso externo à rede da empresa.

Se eu conseguisse detectar se o usuário está em note ou pc, eu podia realizar o bloqueio assim.

 

Alguém me dá alguma ideia de como fazer isso, se tem como fazer..

 

 

Obrigada :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Acredito que seja impossível fazer essa identificação, a menos que:

Seu sistema na qual o usuário está usando... possua um mecanismo de identificação...

Por exemplo  para acessar o sistema, cadastrar no banco de dados o  as informações daquele PC. como acontece no site da caixa economica federal,,, onde obriga cadastrar o computador e libera-lo para acessar a conta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim,  seria isso, mas teria de ter o controle que mencionei mais acima.

 

Você poderia entrar em contato com o desenvolvedor do sistema, e pedir para eles implementarem um formulário de cadastro de computadores com permissão ao acesso no sistema.

Nesse caso é interessante os seguintes itens no formulário:

 

  • Obrigação de selecionar que tipo de PC está sendo usado, desktop ou notebook
  • Nomear este PC
  • No momento que cadastrar o PC, registrar no banco de dados, a hora e data de acesso, quem sabe até o IP da maquina que acessou..

 

Seria mais ou menos isso. mas como eu disse,  você precisa entrar em contado com o desenvolvedor para saber se é possível implementar este recurso,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não desenvolvi o sistema, mas agora sou a desenvolvedora da empresa , é possível criar o formulário sim, mas creio que não resolveria meu problema!

O principal problema pra mim é que mesmo que o usuário cadastre o computador, eu não terei como validar de onde ele está acessando, pois, o IP estará cadastrado no banco mas não terei como comparar o do banco com o da máquina atual, como mencionei antes, o firewall bloqueia o acesso externo à rede da empresa pois o sistema está na nuvem e mesmo que eu valide com o que o usuário respondeu se é notebook ou desktop, é muito suscetível à falhas, o usuário pode cadastrar note e usar pc, não tenho um dado para comparar, me entende?

O que eu precisava realmente era que via código eu identificasse se é notebook ou desktop, o que eu acho que não há maneira que eu possa fazer.

Resolveria meu problema se o sistema não estivesse na nuvem, aí eu liberaria por IP e pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendo sua posição.. é realmente complicado isso.. mas vamos ao exemplo prático do que eu sugeri:

 

Vamos tomar por exemplo eu acessando seu sistema com a solução.

 

Primeiro você disse que os dados são cadastrados na nuvem, se for possível abstrair estes dados cadastrados você terá algo para comparar.

 

Para acessar o sistema o que eu faria:

  • Acessaria o formulário de cadastro de PC
  • Preencheria o formulário com as devidas informações
  • O sistema cadastra na nuvem os dados da máquina
  • Para acessar o sistema, terei que:  Selecionar o tipo de máquina que vai acessar, usuário e senha.
  • O sistema compara os dados, emitidos pelo formulário de login com o cadastrado na nuvem.
  • Se forem idênticos, permite o acesso, senão bloqueia acesso. 

Agora o diferencial que podes implementar além disso..

 

Implementar um controle de usuários logados no sistema.

Nesta área você lista todos os usuários logados no sistema no momento.. juntamente com o tipo de máquina acessada...  e dois botões de ação: Liberar e Bloquear.

 

lembrando, que isso só se o seu banco de dados na nuvem permitir a abstração de dados.. digo isso.. porque eu não sei como funciona o banco de dados na nuvem ainda :)

Mas acredito que seja o mesmo principio de um banco de dados comum :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi bem o problema. Independente de ser desktop ou notebook, e/ou independente do sistema ser na nuvem, se você me diz que o sistema deve ser bloqueado para certos usuários, esse sistema não deveria ter sistema de login? E ai apenas usuários com contas liberadas poderiam usa-lo?

E se o firewall bloqueia acesso a rede externa como os usuários que 'devem poder acessa-lo' o fazem? Como um desktop acessa, por exemplo? O notebook é pessoal ou corporativo? se for corporativo você pode instalar certos programas/bloqueios no próprio notebook..
 

Como o amigo dif disse até existem alguns códigos para tentar essa identificação a baixo level, mas eu tenho quase uma onisciência de que não são confiáveis.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O sistema é corporativo, deveria ser acessado somente nos desktops da empresa, existe login, é claro, o problema principal é que o usuário pode acessar do seu notebook de casa via VPN, como são dados sigilosos isso não deveria ocorrer.

Se eu conseguisse saber se é via notebook o acesso, eu bloquearia e tudo seria resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E não seria melhor por exemplo, manter um datacenter na própria empresa, e usar uma INTRANET?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, primeiro ponto: se o sistema é pela VPN então ele está na rede de vocês e, portanto, não está nas nuvens. Ou, se está nas nuvens, vocês tem um sério problema de segurança (pois qualquer usuário pode acessar de qualquer maquina na verdade, independente de ser notebook ou desktop). Não quero ser chato, só estou tentando definir para podermos falar da mesma coisa, ok?

Sistema nas Nuvens = na web, disponível de qualquer lugar.

Sendo assim:

(1) Se o sistema ESTÁ nas nuvens, vocês precisam tirar, como sugeriu o amigo dif. É simples, como você mesmo disse mesmo tendo login qualquer usuário pode logar de qualquer lugar e ter acesso a informações (que é o conceito de ter algo nas nuvens) sigilosas.

A unica forma de garantir certa segurança com o sistema nas nuvens é monitorar, mas isso implica também se vocês tem autorização por escrita dos colaboradores em faze-lo (ou se o sistema tem algum termo de uso e por aí vai).

(2) Se o sistema NÃO ESTÁ nas nuvens, vocês precisam monitorar a VPN (tendo em vista os mesmos problemas legislativos mencionados acima).

Por exemplo, na minha empresa, eu tenho acesso a VPN e posso ter informação a informações sigilosas de qualquer lugar. Como medida preventiva minha empresa faz? Nada. Apenas monitoramento e garantias de lei (como pedir para os colaboradores assinarem termos de confidencialidade etc).

Simplesmente porque não tem muito o que fazer..

O que posso sugerir é que vocês revejam a politica de acesso a VPN.

Compartilhar este post


Link para o post
Compartilhar em outros sites

IDEIA:

Se é um sistema corporativo, você poderia criar um token de acesso (é simples exemplo: criar um programa exemplo em DELPHI "cito delphi porque é o que eu usava para programar para desktop antes de programar web") para que pegue o endereço mac e ou numero de serie do HD ou placa mãe do computador e envie para o seu servidor via get por exemplo, ai você trata estes dados, se ele está liberado ou não, armazenando os macs, numero de serie (concatenado por exemplo) liberados em um banco de dados para poder realizar a comparação.

 

No próprio sistema você pode colocar o link para download do token, e assim que ele abrir o token os dados seriam recolhidos do sistema e enviado para o servidor que validaria os dados e permitiria ou não o acesso, e a sua validação deve saber diferenciar um acesso direto de um acesso recebido pelo token (através de dados enviados via variáveis por exemplo).

 

Já desenvolvi algo semelhante em delphi, mas pegava as informações de hardware da maquina e enviava para um banco de dados (passava os dados via GET para o php).

 

 

IDEIA2:

Não sei se você sabe trabalhar com java para web, mas neste site há uma possivel solução para pegar o mac address do cliente:

  http://stackoverflow.com/questions/14830336/java-get-uuid-or-mac-address-from-client

 

http://javafree.uol.com.br/topic-881622-Captura-de-dados-no-cliente-MAC-Address.html

 

se esta opção funcionar você pode pegar os dados do mac do cliente cadastrar e comparar os dados recebidos do site com o do seu banco.

 

Não testei a solução apresentada neste link que estou passando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×