¿Es seguro confiar $_SERVER['REMOTE_ADDR']
? ¿Se puede sustituir cambiando el encabezado de la solicitud o algo así?
¿Es seguro escribir algo así?
if ($_SERVER['REMOTE_ADDR'] == '222.222.222.222') { // my ip address
$grant_all_admin_rights = true;
}
php
security
ip-address
Luz plateada
fuente
fuente
$_SERVER['REMOTE_ADDR']
variable configurando un encabezado de solicitud HTTP. PHP prefija automáticamente todos los encabezados de solicitud HTTPHTTP_
cuando crea claves en el$_SERVER
superglobal.Respuestas:
Si, es seguro. Es la IP de origen de la conexión TCP y no se puede sustituir cambiando un encabezado HTTP.
Un caso del que puede que desee preocuparse es si está detrás de un proxy inverso, en cuyo caso REMOTE_ADDR siempre será la IP del servidor proxy y la IP del usuario se proporcionará en un encabezado HTTP (como X-Fordered-For ). Pero para el caso de uso normal, la lectura de REMOTE_ADDR está bien.
fuente
$_SERVER['REMOTE_ADDR']
es la dirección IP en la que entró la conexión TCP. Si bien es técnicamente posible falsificar direcciones IP bidireccionalmente en Internet (al anunciar rutas erróneas a través de BGP), es probable que dichos ataques sean detectados y no estén disponibles para el atacante típico; básicamente, su atacante debe tener control sobre un ISP o proveedor. No hay ataques de suplantación de identidad unidireccionales factibles contra TCP (todavía). Sin embargo, la suplantación de IP bidireccional es trivial en una LAN.También tenga en cuenta que puede que no sea una dirección IPv4, sino una dirección IPv6. Su verificación actual está bien en ese sentido, pero si verificara que
1.2.3.4
solo ocurre en cualquier lugar dentro$_SERVER['REMOTE_ADDR']
, un atacante podría simplemente conectarse desde2001:1234:5678::1.2.3.4
.En resumen, para aplicaciones que no sean críticas (bancarias / militares / daños potenciales> 50.000 €), puede usar la dirección IP remota si puede excluir a los atacantes en su red local.
fuente
$_SERVER['REMOTE_ADDR']
la dirección IP en la que entró la conexión TCP depende completamente de su SAPI.you have been kicked off the wlan
facilitan la creación de paquetes de suplantación con las herramientas adecuadas. googleWPA downgrade test
, por ejemploComo se mencionó anteriormente, no es absolutamente seguro. Pero no significa que no debas usarlo. Considere combinar esto con algunos otros métodos de autenticación, por ejemplo, verificar los valores de COOKIE.
fuente