Kullanıcı PHP localhost üzerinde olup olmadığını nasıl tespit edebilirsiniz?

5 Cevap php

Benim web uygulamasını kullanarak kişinin bulunduğu sunucu üzerinde ise diğer bir deyişle, nasıl anlayabilirim? Eğer yanlış hatırlamıyorsam, PHPMyAdmin güvenlik nedeniyle böyle bir şey yok.

5 Cevap

Ayrıca $_SERVER['REMOTE_ADDR'] hangi isteyen istemci IP adresi, web sunucusu tarafından verilen kullanabilirsiniz.

$whitelist = array(
    '127.0.0.1',
    '::1'
);

if(!in_array($_SERVER['REMOTE_ADDR'], $whitelist)){
    // not valid
}

Bu taklidinin kolayca http başlığında değer, çünkü sen, $_SERVER['HTTP_HOST'] kullanmalısınız görünmüyor.

Sen $_SERVER["REMOTE_ADDR"] da, bu daha güvenli bir değer, ama sahte de mümkündür kullanabilirsiniz. Bu remote_addr Apache geri döner neden adresidir.

Yeni işletim sistemi kullanıcıları (Win 7, 8) de gerekli kendi whitelist dizide bir IPV6 formatlı uzaktan adresini dahil bulabilirsiniz:

$whitelist = array('127.0.0.1', "::1");

if(!in_array($_SERVER['REMOTE_ADDR'], $whitelist)){
    // not valid
}

Bir tamamlayıcısı olarak, bir fonksiyonu olarak ...

function is_localhost() {
    $whitelist = array( '127.0.0.1', '::1' );
    if( in_array( $_SERVER['REMOTE_ADDR'], $whitelist) )
        return true;
}