É seguro confiar $_SERVER['REMOTE_ADDR']
? Ele pode ser substituído alterando o cabeçalho da solicitação ou algo parecido?
É seguro escrever algo assim?
if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address
$grant_all_admin_rights = true;
}
php
security
ip-address
Luz cinza
fonte
fonte
$_SERVER['REMOTE_ADDR']
variável definindo um cabeçalho de solicitação HTTP. O PHP automaticamente prefixa todos os cabeçalhos de solicitação HTTPHTTP_
ao criar chaves na$_SERVER
superglobal.Respostas:
Sim, é seguro. É o IP de origem da conexão TCP e não pode ser substituído alterando um cabeçalho HTTP.
Um caso com o qual você pode querer se preocupar é se você está atrás de um proxy reverso, caso em que REMOTE_ADDR será sempre o IP do servidor proxy e o IP do usuário será fornecido em um cabeçalho HTTP (como X-Forwarded-For ) Mas para o caso de uso normal, a leitura de REMOTE_ADDR é adequada.
fonte
$_SERVER['REMOTE_ADDR']
é o endereço IP em que a conexão TCP entrou. Embora seja tecnicamente possível falsificar endereços IP bidirecionalmente na Internet (anunciando rotas incorretas via BGP), esses ataques provavelmente serão detectados e não estarão disponíveis para o invasor típico - basicamente, seu invasor deve ter controle sobre um ISP ou operadora. Não há ataques de spoofing unidirecional viáveis contra TCP (ainda). Porém, spoofing de IP bidirecional é trivial em uma LAN.Também esteja ciente de que pode não ser um endereço IPv4, mas sim um endereço IPv6. A sua verificação atual é adequada nesse aspecto, mas se você verificar que
1.2.3.4
ocorre apenas em qualquer lugar interno$_SERVER['REMOTE_ADDR']
, um invasor pode simplesmente se conectar de2001:1234:5678::1.2.3.4
.Resumidamente, para qualquer coisa diferente de aplicativos críticos (bancários / militares / danos potenciais> 50.000 €), você pode usar o endereço IP remoto se puder excluir atacantes em sua rede local.
fonte
$_SERVER['REMOTE_ADDR']
é o endereço IP que a conexão TCP veio depende inteiramente do seu SAPI.you have been kicked off the wlan
pacotes de falsificação fáceis de criar com as ferramentas certas. googleWPA downgrade test
, por exemploConforme mencionado acima, não é absolutamente seguro. Mas isso não significa que você não deve usá-lo. Considere combinar isso com alguns outros métodos de autenticação, por exemplo, verificar os valores COOKIE.
fonte