Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edgard Hufelande

Pegar endereço MAC via PHP, é possível?

Recommended Posts

Então, queria arrumar uma forma de dificultar o acesso a um sistema além de um painel de usuário, creio que uma boa forma é cadastrando o MAC da máquina na base de dados, que no caso eu poderia até mesmo bloquear o acesso a tela de login para aqueles que não tem o MAC da máquina cadastrada na base de dados.

 

Alguma ideia? Rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, se for intranet, não tem coisa melhor do que utilizar CA's.

 

Inclusive, tem até um artigo do João falando sobre isso, take a look.

:seta: http://imasters.com.br/infra/seguranca/confianca-certificados-digitais-e-autenticacao/

Compartilhar este post


Link para o post
Compartilhar em outros sites

se for uma intranet há alguns meios viáveis

 

Dúvida => então se não for numa intranet não tem como? Quase desanimei agora, rs

Já tava me animando, achando que seria mais simples fazer uma página restrita.

Compartilhar este post


Link para o post
Compartilhar em outros sites

#4 é possível porém dependerá de permissões de acesso do cliente e não o fará isso com PHP.. será no mínimo com JavaScript

 

 

:seta: How can I get the MAC and the IP address of a connected client in PHP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Triste saber disso, porque eu queria mesmo privar o acesso a determinados PCs que fizessem pedido e recebessem a permissão de acesso. O problema é que eu até poderia criar uma lista de IPs permitidos e bloquear todos os outros não presentes na lista, mas a grande massa hoje em dia usa IP dinâmico, então nem rola de colocar a base do IP da pessoa que pode ser, por exemplo, 10.200.0.XXX, onde XXX é a única parte que eu não defino como padrão de pré-requisito, mas qualquer um nesse modelo acessaria. A questão é que não serviria de praticamente nada, já que um amigo feliz com ip 10.200.0.103 teria o mesmo acesso que o outro amiguinho de ip 10.200.0.134. Enfim, já pensei em várias alternativas, mas acho que vou ter que continuar usando a senha única de acesso mesmo :(

 

Só queria evitar de terem que ficar colocando senha toda hora que forem entrar no site. Mas como ainda é um projeto em andamento (já está no ar, mas apenas pra testes de desempenho e erros) vou ter tempo pra modificar e melhorar as coisas. #chatiado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas qual a intenção de esconder até a página de login?

Se a aplicação já é protegida de acesso externo, não faz sentido querer bloquear as requisições também.

Claro, você pode enfrentar um ataque de DoS, mas a não ser que seja uma aplicação muito crítica, não vejo necessidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não, o caso é mais pra automatizar mesmo. Qualquer um tem acesso à página de login, mas só quem tem a senha de acesso consegue entrar. Eu só queria automatizar esse serviço usando uma informação pessoal e única do usuário pra fazer isso sem intervenção dele.

 

Essa é uma página de acesso unicamente aos administradores. Lá eles tem acesso a quase todos os bancos de dados e etc. que tem milhares de registros cada um, por isso eu também queria "travar" o acesso (além de evitar o uso de senha). Se desse pra pegar o MAC não teria como o cara fazer, por exemplo, um ataque com senhas aleatórias. Imagina que ele (o suposto hacker) tem um banco de dados com inúmeras, incontáveis senhas e começa a fazer as tentativas com cada uma, por meio de programas ou seja lá qual forma ele queira. Facilitaria muito a evitar esse tipo de ataque se só o computador pessoal do administrador tivesse acesso, entende? Mas isso é o de menos, dá pra proteger de outras formas. Eu só pensei que se desse seria a forma mais prática pra isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo plenamente com o Henrique, e acho que essa não essa não seria a melhor solução para um sistema de login.

Acho que isso irria limitar o uso de seus clientes a só somente um computador especifico dele.

 

Acho que dependo so seu caso pode ser que de para trabalhar com certificado digital.

Agora se houver uma grande necessidade de segurança com algumas informações você pode trabalhar dentro de uma VPN.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no post #11 fala da perda de mobilidade.

 

uma das riquezas da internet é justamente a mobilidade.

 

E outro ponto importante, mesmo que fosse possível ou permitido livremente a leitura do MACADDRESS, seria completamente errôneo aplicá-lo para essa finalidade descrita no post #9

 

Imagine aí que um administrador do sistema tenha o tablet roubado ou acessado por outra pessoa.

Ou caso o administrador tenha um problema no equipamento, não consegue ligar, queimou, ou enfim.. como acessará o sistema ?

Há inúmeras situações.

Essa outra pessoa teria livre acesso ao sistema sem necessidade de identificação.

Um prato cheio para golpistas, ladrões, etc..

 

Outro ponto também é, muitos países não permitiriam devido a leis constitucionais de proteção a privacidade.

 

 

Sobre querer implementar autenticação via MACADDRESS, o grande ponto falho está na logística.

Faltou logística antes de pensar em querer implementar esse tipo de recurso.

 

 

Não, não, o caso é mais pra automatizar mesmo. Qualquer um tem acesso à página de login, mas só quem tem a senha de acesso consegue entrar. Eu só queria automatizar esse serviço usando uma informação pessoal e única do usuário pra fazer isso sem intervenção dele.

 

(...)

Abster-se da senha de acesso para autenticar o usuário automaticamente é uma péssima ideia, pior ainda se esses usuários forem do grupo de administradores. Uma identificação do cliente é bem vinda como uma complementação da segurança proporcionada pela senha, não como substituição. Afinal, como já dito acima, o computador que armazena esse identificador pode ser roubado.

 

Uma alternativa interessante que eu tenho pesquisado é o certificado client-side. Assim como os certificados SSL/TLS nos servidores servem para identificar o site como realmente pertencente a determinada organização, o certificado do lado cliente identifica a pessoa que está enviando a requisição. Infelizmente, IE não suporta esse recurso e um representante da Microsoft no W3C já avisou que eles não pretendem oferecer isso.

 

[Mais detalhes]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abster-se da senha de acesso para autenticar o usuário automaticamente é uma péssima ideia, pior ainda se esses usuários forem do grupo de administradores. Uma identificação do cliente é bem vinda como uma complementação da segurança proporcionada pela senha, não como substituição. Afinal, como já dito acima, o computador que armazena esse identificador pode ser roubado.

 

Uma alternativa interessante que eu tenho pesquisado é o certificado client-side. Assim como os certificados SSL/TLS nos servidores servem para identificar o site como realmente pertencente a determinada organização, o certificado do lado cliente identifica a pessoa que está enviando a requisição. Infelizmente, IE não suporta esse recurso e um representante da Microsoft no W3C já avisou que eles não pretendem oferecer isso.

 

[Mais detalhes]

Se eu proibir as pessoas de usar o IE ainda estarei fazendo um bem à humanidade :P

 

Mas, você tem razão, agora que me fez pensar por esse lado acho melhor deixar o sistema de login bonitinho lá mesmo, hahaha

 

Concordo plenamente com o Henrique, e acho que essa não essa não seria a melhor solução para um sistema de login.

Acho que isso irria limitar o uso de seus clientes a só somente um computador especifico dele.

 

Acho que dependo so seu caso pode ser que de para trabalhar com certificado digital.

Agora se houver uma grande necessidade de segurança com algumas informações você pode trabalhar dentro de uma VPN.

Pode ser um solução muito válida, vou começar a verificar a efetividade desse método. Agradeço a dica :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso sem contar que mais do que uma porta de acesso, um login-zinho básico é um clichê aceitável. :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não apenas via PHP mas se você usar JS com PHP sim:

function GetMacAddress()
{
//This function requires following option to be enabled without prompting
//In Internet Options for IE 5.5 and up
//Tab Security (Local Internet Sites)
//Custom Level button
//"Initialize and script ActiveX control not marked as safe." option enabled
try
{
var locator = new ActiveXObject("WbemScripting.SWbemLocator");
var service = locator.ConnectServer(".");

//Get properties of the network devices with an active IP address
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration" +
" WHERE IPEnabled=TRUE");

var e = new Enumerator(properties);

//Take first item from the list and return MACAddress
var p = e.item(0);
}
catch (exception) {
alert('Add your domain to Trusted Sites.');
window.location = "about:blank";
}

return p.MACAddress;
}

function WriteMacAddress()
{
var strmac = GetMacAddress();
var macFound = false;

if (strmac != null && strmac != 'Nothing')
{
var hfadr = document.getElementById("<%=hfMACAdresa.ClientID%>");
hfadr.value = strmac;
macFound = true;
}
else
{
hfadr.value = '';
alert('MAC address does not exist! Call IT support.');
}

return macFound;
}

Aplicações Web em MVC também são capazes de obter o MAC sem JavaScript.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.