sahte ağ bağdaştırıcısı IP ayarlanır php / ajax REMOTE_ADDR

1 Cevap php

today I came a across a pretty strange behaviour of an php based application of mine. In a certain part of the system there's an UI making use of AJAX-calls to fill list boxes with content from the backend.

Now, the AJAX listener performs a security check on all incoming requests, making sure that only valid client IPs get responses. The valid IP vardır stored in the backend too.

Müşterinin IP almak için ben eski kullanılan düz

$_SERVER['REMOTE_ADDR']

which works out for most of the clients. Today I ran into an installation where remote_addr contained the IP of an network adapter which was'nt that one which performed the actual communication for my application.

Benim agve etrafında google'da Roshan's Blog entry on the topuic:

function getRealIpAddr()
{
    if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from shvardır internet
    {
      $ip=$_SERVER['HTTP_CLIENT_IP'];
    }
    elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))//check ip is pass from prxy
    {
      $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    }
    else
    {
      $ip=$_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

Ne yazık ki sorun devam ederse.

Hic (aslında ben ^ ^ tamamen yeni bir sorun keşfettim olduğunu sanmıyorum) sorun bu tür yanılmak ve benim için bunu düzeltmek nasıl bir fikri var mı?

EDIT:

Ben değilim

  • PHP Version 5.2.9-1
  • Apache/2.2.9 (Win32)

The communication is done via a regular LAN card. Now the actuall client has several devices more. VMNet adapters ve such.

Ben nasıl bir istemci yapılveırma 'rahatsız' can bir web sunucusu çok merak ediyorum ...

TIA

K

1 Cevap

Ne yazık ki, inanmayarak ile tüm IP bilgilerini almak zorunda.

IP adresleri dikkate paketi ve talep bilgilerini alarak istek sırasında toplanmıştır. Ne yazık ki, bu bilgiler kolayca kandırılabilir hatta yanlış olabilir (şebeke olasılıkları çok sayıda dayalı) ve makyaj amaçlı daha bir şey için kullanılmamalıdır olabilir.