Bloquear acesso a site

Boa tarde!

Desenvolvi um site para uma empresa e agora preciso que somente as maquinas que estão nesta empresa acessem o site. Exemplo se o funcionário for para casa, não pode acessar este site, mesmo ele tendo o usuário e senha.

Seria algo com o mac da maquina por exemplo.

Alguem teria um código ou algum material que eu possa começar a desenvolver.

Não é mais simples deixar o site somente na intranet da empresa?

É que o site esta fora.
E teria que ser alguma coisa por maquina ou por usuário, pois ha usuários na empresa que poderiam acessar de casa. Tipo o dono da empresa.

[quote=rpassos81]É que o site esta fora.
E teria que ser alguma coisa por maquina ou por usuário, pois ha usuários na empresa que poderiam acessar de casa. Tipo o dono da empresa.[/quote]Acho mais fácil deixar na intranet e apenas os chefes teriam acesso. o.o

Desenvolvi uma aplicação web parecida, para solucionar este problema você pode limitar pelo range de ip utilizado no cliente. Além de armazenar os dados de login do usuário na base de dados eu também verifico o numero do ip da máquina. Para isso costumo usar o sequinte select na base de dados … SELECT * FROM SYS.DM_EXEC_CONNECTIONS, no campo client_net_address (tabela padrão do SQL).

Espero ter ajudado.

[quote=meyer]Desenvolvi uma aplicação web parecida, para solucionar este problema você pode limitar pelo range de ip utilizado no cliente. Além de armazenar os dados de login do usuário na base de dados eu também verifico o numero do ip da máquina. Para isso costumo usar o sequinte select na base de dados … SELECT * FROM SYS.DM_EXEC_CONNECTIONS, no campo client_net_address (tabela padrão do SQL).

Espero ter ajudado.[/quote]E se o ip não for fixo? Como você resolve isso?

Neste caso você terá o range de ip da empresa na qual está desenvolvendo a aplicação, qualquer ip fora deste range o acesso será bloqueado. Outra solução seria publicar seu site apenas no servidor do cliente (intranet) sem hospedá-lo na web aberta.

Ola, nao sei se vai te ajudar… :roll: mas você poderia bloquear acessos por períodos do dia.

  • Cada conta terá um período do dia para acessar o sistema.
    e para os donos/chefes/etc… você tira a restrição, deixando acesso à qualquer hora do dia.

Assim você pode limitar o acesso dos usuários comuns apenas ao horário de trabalho.

[quote=gregoribedin]Ola, nao sei se vai te ajudar… :roll: mas você poderia bloquear acessos por períodos do dia.

  • Cada conta terá um período do dia para acessar o sistema.
    e para os donos/chefes/etc… você tira a restrição, deixando acesso à qualquer hora do dia.

Assim você pode limitar o acesso dos usuários comuns apenas ao horário de trabalho.
[/quote]Pensei nisso também, mas se alguém for para casa mais cedo lasca tudo. ^^

Neste caso vejo que faltou alguns requisitos primordiais:

1 - o tipo de acesso
2 - quem irá acessar
3 - e de onde

No seu caso é complicado porque se você tem a aplicação na web, você esta tentando quebrar um paradigma , que é exatamente a disponibilidade da aplicação ser acessada de qualquer lugar, senão existe a possibilidade de coloca-lá na intranet , a ideia dos IP é uma alternativa , mas não consegui pensar em algo ainda …

Só tem duas maneiras simples de conseguir isso, e são as sugestões que o pessoal já deu:

  • Uma é o controle por IP, que depende de a empresa ter um link de internet com IP fixo (ou alguém bem ligeiro para atualizar a permissão quando ele mudar).
  • A outra é deixar o serviço na intranet, mas fornecer aos privilegiados uma conexão remota com a rede interna (VPN) para que acessem de casa.

Fora isso só apelando para algumas semi-gambiarras, como:

  • Usar uma camada de acesso a mais, controlada por dispositivo de token. Aí tem que acorrentar o aparelhinho para ele não sair da empresa (o dono teria um só para ele). Isso costuma ser CARO!

  • Instalar nas máquinas algum programa bem chato que o usuário precise dele para acessar. Pode ser um gerador de chaves de acesso vinculado a algum componente do hardware, para que ninguém consiga levar para casa. Provavelmente não dá pra fazer apenas em Java, e esse sistema seria uma beleza para dar pau! :slight_smile:

maravilha pessoal, obrigado pelas informações e sugestoes. Vou analisar melhor esta questão.