| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 08:51:10
|
hishin
Debugger
Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline
|
bom dia a todos.
Estou quebrando a cabeça com o meu software e gostaria de ver se vcs podem me ajudar.
tenho um programa q rodará localmente em uma empresa, eles pagaram um aluguel para o uso, mas querem utilizar esse sistema nas filiais com acesso ao servido da matriz (onde o sistema será instalado). Até aí tudo bem, consigo fazer o programa acessar pela internet, mas o que eu realmente quero é saber como faço para validar esses usuários externos.
Porque é o seguinte, as filiais terão que pagar o aluguel tb e para evitar "golpes" tenho que criar uma forma de que eu libere o acesso a esses que pagam o software e não dê para a matriz "dar um jeitinho" de outras filiais usarem sem pagar.
Pensei no seguinte: 1º opção: validação por ip externo, faz um comparativo e se for igual, passa. Problema: se o ip for dinâmico... ferrou.
2º opção: validação do nome da maq, tem um cadastro na matriz onde o nome da maq está instalado e seu ip interno. Problema: A empresa pode formatar a maq e ela não acessar mais, ou usar o nome da maq em outra estação. Embora eu faria um comparativo de nomes, os nomes não poderiam ser iguais.
3º opção: validação pelo mac address. Problema: Trocou a placa de rede, ferrou.
4º opção: validação do ip interno. Problema: Se mudar o ip interno ou for dinâmico, não dará certo.
Um amigo meu falou para fazer um registro no windows (no caso, o programa rodará em estações windows msm), mas não tenho nem idéia de como criar um registro e como usar isso para validar.
Vcs podem me ajudar a encontrar uma solução?
Desde já agradeço a todos.
Abraço
PS: Caso eu não tenha sido claro em algumas informações, por favor me digam.
|
Open your mind, use open source. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 09:15:44
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline
|
O servidor da matriz é você que programa?
Acho que é mais fácil definir um contrato de logins simultâneos. Assim, seu sistema pode contar quantos usuários tem logados e impedir e entrada de novos caso o limite já tenha sido atingido.
Validar por IP realmente não é uma boa. É muito fácil burlar. Seja o interno ou externo.
Por MAC, traz inconvenientes para o seu cliente, e para você também. Ele não poderá trocar o próprio hardware sem ter que falar com você. Se isso ocorrer numa emergência, você pode ter mais dor de cabeça do que gostaria.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 09:27:41
|
hishin
Debugger
Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline
|
Primeiramente, obrigado pela resposta.
Então, só instalarei o bd. nada mais.
Sobre acesso simultaneo, hmm... eu não estava pesando em usar limites de acesso. Mas é um boa alternativa.
eu poderia controlar somente os acessos remotos? por exemplo: para a matriz teria acesso ilimitado mas para acessos das filiais seria controlado.
Poderia fazer isso comparando os ip's externos, por exemplo: pego o ip externo da matriz e comparo com o q está acessando remotamente, se forem diferentes, conta como um acesso.
Será q dá certo?
Abraço!
|
Open your mind, use open source. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 09:28:16
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
Por IP, somente se usado uma conta DNS (como No-IP) ou se o IP público das filiais forem estáticos (pouco provável).
Por MAC, nem é possível, uma vez que os roteadores da Internet trabalham na camada 3 do modelo OSI, o que faz com que todas as informações de camada 2 (o MAC) sejam perdidas a cada salto (a cada roteador que o pacote passa, um novo MAC de origem e de destino).
Portanto, o número máximo de usuários simultâneos que o Vinícius sugeriu parece ser uma boa.
|
Marco Biscaro.
Seja livre!
Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?
Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 09:33:36
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20578
Localização: Curitiba/PR
Offline
|
marcobiscaro2112 wrote:Por MAC, nem é possível, uma vez que os roteadores da Internet trabalham na camada 3 do modelo OSI, o que faz com que todas as informações de camada 2 (o MAC) sejam perdidas a cada salto (a cada roteador que o pacote passa, um novo MAC de origem e de destino).
Eu imagino o mac sendo possível apenas se a aplicação incluído no seu handshake, ou seja, se ele programar isso. Direto pelo pacote é virtualmente impossível, até pq o Java nem sequer disponibiliza a leitura do pacote em modo "raw".
De qualquer forma, mesmo que ele viabilize isso, ainda resta os inconvenientes que eu falei. E eu, particularmente, sou radicalmente contra DRMs que tornem a vida do cliente mais complicada do que já é.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 09:34:33
|
hishin
Debugger
Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline
|
Entendo... realmente a idéia dele é melhor. mas isso terá que ser para todos os acessos certo? tanto interno qto externo.
não tem como identificar que é de fora? e contar somente eles?
Abraços.
|
Open your mind, use open source. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 09:44:03
|
marcobiscaro2112
JWizard
Membro desde: 01/12/2008 11:56:04
Mensagens: 2408
Localização: São Paulo - SP
Offline
|
hishin wrote:Entendo... realmente a idéia dele é melhor. mas isso terá que ser para todos os acessos certo? tanto interno qto externo.
não tem como identificar que é de fora? e contar somente eles?
Abraços.
Isso é menos complicado. Você pode pegar o IP remoto da conexão e verificá-lo: se for o IP do gateway da rede, é conexão externa. Caso contrário, é da LAN.
|
Marco Biscaro.
Seja livre!
Você sabia que provavelmente há milhares de arquivos duplicados no seu computador?
Ei... você está usando DefaultTableModel no seu projeto?? Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 10:01:42
|
hishin
Debugger
Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline
|
Maravilha, vou tentar aq. Grato a todos pela ajuda!
Até mais.
|
Open your mind, use open source. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 10:54:04
|
osmio
Java Ninja
Membro desde: 22/08/2006 20:27:54
Mensagens: 252
Offline
|
Restrições aplicadas em fonte não compilada (por exemplo regras no banco de dados) são muito mais fáceis de burlar (ainda mais levando em consideração que o banco de dados esta no cliente).
At.
|
"O pensamento lógico pode levar você de A a B, mas a imaginação te leva a qualquer parte do universo."
- Einstein, Albert |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 11:01:27
|
hishin
Debugger
Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline
|
Estou ciente disso, mas como fazer?
tem alguma sujestão?
abraço
|
Open your mind, use open source. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 11:11:21
|
orlandocn
Java Ninja
![[Avatar]](/images/avatar/4efc9e02abdab6b6166251918570a307.jpeg)
Membro desde: 30/07/2005 12:42:29
Mensagens: 262
Offline
|
hishin wrote:Estou ciente disso, mas como fazer?
tem alguma sujestão?
abraço
talvez o jlicense te ajude
|
CGHP - Certified Go Horse Professional
CFMU - Certified Fanfarrão Masters of the Universe
next target --> CFG - Certified Fanfarrão Guru
"Scrum é apenas XP sem as práticas e técnicas que a fazem funcionar." |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/01/2010 11:15:29
|
hishin
Debugger
Membro desde: 22/08/2008 08:16:42
Mensagens: 65
Offline
|
embora eu ache o seguinte, se o sistema está funcionando perfeitamente e o cliente confia no programador, acho difícil ele confiar o source a outro programador msm ele sendo da empresa pq cada um entende o seu codigo.. ler o cod dos outros e alterar é um saco e claro se algum dano acontecer, o programador, no caso eu, não se reponsabilizaria. Claro que colocarei isso no contrato, me imunizando disso. Caso tenha a quebra, o cliente paga multa ou para arrumar o soft depois, cobrarei mais caro.. daí sei la.. tem q ver.
abraços
|
Open your mind, use open source. |
|
|
 |
|
|