Konu yine bir sorudan baska bir yere gelmis, arkadasin sordugu sistemin guvenligi degil. $_SERVER['REMOTE_ADDR']'in bypass edilip edilemeyecegi.
$_SERVER['REMOTE_ADDR'] client tarafindan bypass edilemez(ayni network uzerinde olmadiklari surece). Proxy kullanabilir fakat spesifik bir ip'i gosteremez.
Server side'da ise $_SERVER['REMOTE_ADDR'] yeniden tanimlanabilir, ki server side'a erisimi olanin da buna pek ihtiyaci olacagini sanmiyorum.
$_SERVER['REMOTE_ADDR'] Bypass edilebilinir mi?
11
●952
- 21-07-2015, 23:17:52Kimlik doğrulama veya yönetimden onay bekliyor.Merhaba,sewakldawk adlı üyeden alıntı: mesajı görüntüle
$_SERVER globali manipüle edilebilir. Aşağıdaki örnek ile bunu anlayabilirsiniz. Ek olarak, soruda "istemci" tarafından manipüle edilip edilemeyeceği sorulmuş. Proxy ile aşalabilir ama "fake" ip adresi göndermek imkansız! Tarayıcı ile HTTP sunucusu arasında TCP bağlantısı kurulduğu ve bu bağlantı "3-way handshake" olarak kurulduğu içindir.
<?php header('Content-Type: text/plain; charset=UTF-8'); printf('PHP Version: %s' . PHP_EOL, PHP_VERSION); printf('Before: $_SERVER[\'REMOTE_ADDR\'] = %s' . PHP_EOL, $_SERVER['REMOTE_ADDR']); $_SERVER['REMOTE_ADDR'] = '188.12.15.99'; printf('After: $_SERVER[\'REMOTE_ADDR\'] = %s' . PHP_EOL, $_SERVER['REMOTE_ADDR']); printf('Before: getenv(\'REMOTE_ADDR\') = %s' . PHP_EOL, getenv('REMOTE_ADDR')); var_dump(putenv('REMOTE_ADDR=188.12.15.99')); printf('After: getenv(\'REMOTE_ADDR\') = %s' . PHP_EOL, getenv('REMOTE_ADDR'));
- 22-07-2015, 02:18:09Soruda istemci tarafından manipüle edilip edilemeyeceği sorulduğu için, "kullanıcı"dan kastım istemci idi. Arkadaşın sorusu net, benim yanıtım da arkadaşın sorusuna yanıt olarak net.saintx adlı üyeden alıntı: mesajı görüntüle
