Tenga cuidado con las configuraciones del servidor donde, por ejemplo, en Rackspace, _SERVER [REMOTE_IP], que suele ser la dirección IP de los usuarios, es en realidad un servidor proxy con carga.
Sin embargo, el encabezado REMOTE_IP es realmente el único encabezado no suplantable en términos de la ip real del usuario.
HTTP_X_CLUSTER_CLIENT_IP y HTTP_X_FORWARDED_FOR (por nombrar algunos), por ejemplo, pueden ser falsificados por un atacante / sistema de ataque.
Muchos de los complementos de seguridad de los complementos de CMS He examinado ese intento de filtrar entradas utilizando un enfoque en cascada de encabezados potenciales y luego prohibir la dirección IP de solicitudes incorrectas, tienden a apilar la mayoría de los clientes comunes o proxy enviados encabezados, el Como REMOTE_ADDR es el último en la lista, esto es trivial para un atacante, por lo que, en efecto, toda la aplicación se vuelve sin sentido, ya que potencialmente se puede enviar una nueva dirección IP de cliente con cada solicitud fraudulenta.
Prohibir la dirección IP incorrecta en una configuración en clúster puede hacer que su sitio web sea prohibido, y permitir que las direcciones IP falsificadas sean prohibidas puede permitir que un atacante envíe una IP falsa del servidor web o un proxy de línea ascendente al servidor web, lo que resulta en la mismo efecto.
O donde se usan las IP de la lista blanca, el atacante también podría enviar las solicitudes falsas con la IP de la lista blanca.
El mejor método que he encontrado en estas situaciones es:
Donde hay otros encabezados que no sean el REMOTE_IP, la regla número uno siempre es filtrarlos para asegurarse de que esos encabezados contengan realmente una dirección IP, entonces sí, use esos para determinar la dirección IP de los usuarios, sin embargo, deshabilite la prohibición de ip (si se está empleando ) en ese caso, y solo vaya con un encabezado 403 y una llamada a die page () para bloquear una solicitud fraudulenta real en lugar de prohibir realmente la dirección IP.
Después de todo, es la solicitud deshonesta que desea evitar completar más que cualquier otra cosa. Prohibir las direcciones IP es más un problema cuando un atacante está atacando su sitio a través de múltiples servidores proxy anónimos para crear una denegación de servicio.