Re: [PHP MG] Impedir usuário de logar em 2 máquinas ao mesmo tempo

890 views
Skip to first unread message

Jeferson Inacio

unread,
Aug 10, 2012, 3:56:34 PM8/10/12
to ph...@googlegroups.com
e se voce salvar no login do usuario o ip da maquina que ele está na hora em que ele fizer login? e só permitir que ele veja o sistema se o ip salvo no banco for igual ao ip atual?

assim, se o cara fizer login na maquina 2, ele vai ser "deslogado" da maquina 1, nao vai conseguir usar porque o ip vai ser diferente.

Em 10 de agosto de 2012 14:33, Rodrigo RFT <rodrigof...@gmail.com> escreveu:
Pessoal,

Alguém sabe um jeito prático de impedir um usuário de logar em 2 máquinas ao mesmo tempo?
Pensei em usar o BD, mas se o cara sair sem fazer logout não registra a saída no BD.

--
Você recebeu esta mensagem porque está inscrito no grupo "PHP MG" no grupos do Google.
Site oficial do grupo: http://www.phpmg.com
Para postar neste grupo, envie um e-mail para ph...@googlegroups.com
Para cancelar a sua inscrição neste grupo, envie um e-mail para phpmg-un...@googlegroups.com
Regras da lista: http://groups.google.com/group/phpmg/web/regras-da-lista
Para ver mais opções, acesse http://groups.google.com/group/phpmg



--
-

Jeferson Inácio Siqueira da Silva e Silva  - Desenvolvedor Web
PHP - Javascript - Jquery - Ajax - MySql - Tableless
(31) 8316-7782

Lucas Mendes de Freitas

unread,
Aug 10, 2012, 4:30:31 PM8/10/12
to ph...@googlegroups.com
Pode usar o DB, salva tbm o tempo que ele logou e usa uma cron quem tiver inativo por mais de 30 minutos você quebra a sessão e limpa o banco e mais facil.
/**
 * Lucas Mendes de Freitas
 * Gerente de Desenvolvimento
 * SDMF Development Systems
 * 
 * +55 31 9416-3842
 * 
 * Twitter: @devsdmf
 * 
 */

/* Antes de imprimir pense em seu compromisso com o meio ambiente! */

Legolas Kun

unread,
Aug 10, 2012, 7:53:03 PM8/10/12
to ph...@googlegroups.com
Senhores, a minha ideia segue praticamente o que já foi falado, pois uma vez um amigo meu precisou de um requisito igual ao mencionado, assim o que eu instruir para ser feito:
1º Salvar no DB os dados do login como data e hora do login, um hash (que era salvo na sessão) que informa o ID da sessão.
2ª Na validação da sessão era verificado se o Hash do login ero o mesmo que estava no BD, se não fosse mostrava uma mensagem para o user informando que ele estava logado em outro computador lhe fornecendo duas opções;
- Encerrar a sessão aberta: assim removia do BD a sessão e criava outra com os dados do login atual
- Cancelar o login: não efetuava o login do user e deixava a sessão como estava.

Seria mais ou menos isso espero que lhe ajude.

Att.

Legolas

2012/8/10 Lucas Mendes de Freitas <dev...@gmail.com>

Marco Van Brain

unread,
Aug 10, 2012, 4:56:11 PM8/10/12
to ph...@googlegroups.com
Eu já vi uma aplicação com esse tipo de comportamento, mas desconheço a implementação.

A minha ideia seria:

Ter uma flag de status no banco que fica true toda vez que houver algum login, essa informação fica armazenada na seção, e o teste vai ser por conexão.

Se o filtro for somente por ip e esse ip for um roteador, muito provável da regra por ip falhar.

Eu já acessei sites com mais de uma máquina que a restrição baseava somente no ip.

Espero que seja útil.

Abraços \o/ !!



Abraços!

--
Marco Antonio
Produtor Multimídia
(31) 8558 1944 - Oi / (31) 9158 3800  - TIM / (31) 9772 0516 - VIVO

Eduardo estevao

unread,
Aug 10, 2012, 9:40:30 PM8/10/12
to ph...@googlegroups.com
O caso do IP não impede um acesso proveniente da mesma rede interna.. talvez um hash do user agent com o ip e o sessionid em uma persistência?
Atenciosamente,
Eduardo Estevão

Evaldo Junior

unread,
Aug 12, 2012, 9:34:31 PM8/12/12
to ph...@googlegroups.com
Você pode ter um tipo de hash para a sessão.

A cada recarga compara o hash da sessão com o do banco.

A cada login, gera um novo hash e apaga outros antigos.

Isso é legal pois, se o usuário esqueceu aberto em um local, ainda
poderá entrar de outro, derrubando o primeiro =)

InFog

Evaldo Junior
CaSoft Tecnologia e Desenvolvimento
+55 13 2138-9525
Site: http://casoft.info
Blog: http://infog.casoft.info
Twitter: @InFog9


Em 10 de agosto de 2012 17:56, Marco Van Brain
<marcov...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages