ограничение ip-адреса админ-панели codeigniter - PullRequest
2 голосов
/ 01 марта 2011

Привет, друзья! Я хочу ограничить IP-адрес для своего сайта php-сайта codeignter в офисе только из соображений безопасности. любой совет, если кто-то уже сделал это?

Ответы [ 5 ]

7 голосов
/ 01 марта 2011

В качестве альтернативы использованию .htaccess вы также можете ограничить доступ из PHP (хотя решение .htaccess более надежно):

$your_ip_address='123.123.123.123'; //change it to yours
if (!isset($_SERVER['REMOTE_ADDR']) || $_SERVER['REMOTE_ADDR'] != $your_ip_address) {
   exit();
}

Найдите index.php в папке webroot, добавьте вышеуказанные коды в начало файла.

Надеюсь, это поможет.

3 голосов
/ 01 марта 2011

Если вы используете Apache, вы можете использовать файл .htaccess, например ..

order deny, allow
deny from all
allow from 111.222.333.444

Создайте файл .htaccess в каталоге, который вы хотите защитить, и поместите вышеупомянутое внутри.

http://httpd.apache.org/docs/current/howto/htaccess.html

1 голос
/ 13 апреля 2018

Простой способ сделать это

$current_ip = $this->input->ip_address();
$your_ip_address='127.0.0.1';

if($current_ip == $your_ip_address){
    echo 'something is wrong';
    exit();
}
1 голос
/ 22 июня 2011

Я сделал это, следуя сообщению Салаха в этой теме: http://codeigniter.com/forums/viewthread/141775/

По сути, вы создаете папку с именем admin /, копируете в нее основной индекс CI index.php и корректируете.

Затем добавьте .htaccess в эту папку.Для моего приложения мне нужен был только AuthType, но IP-разрешение / запрет также должно работать нормально.

В то время я использовал CI 1.7.2.

0 голосов
/ 22 августа 2018

Мне пришлось поделиться своим кодом для этого, если вы находитесь за CDN и хотите использовать разрешение нескольких IPS:

/**
 * return array value in key in case it exists and has value
 * @param array $arr
 * @param $key
 * @return bool|mixed
 */
function is($arr = array(), $key){
    if(isset($arr[$key]) && $arr[$key]){
        return $arr[$key];
    }
    return false;
}

/**
 * this function return the actual client IP in case it is behind CDN
 * @return string
 */
function getClientIp() {
    $ipAddress = '';
    if (is($_SERVER, 'HTTP_CLIENT_IP')) {
        $ipAddress = $_SERVER['HTTP_CLIENT_IP'];
    } else if (is($_SERVER, 'HTTP_X_FORWARDED_FOR')) {
        $ipAddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } else if (is($_SERVER, 'HTTP_X_FORWARDED')) {
        $ipAddress = $_SERVER['HTTP_X_FORWARDED'];
    } else if (is($_SERVER, 'HTTP_FORWARDED_FOR')) {
        $ipAddress = $_SERVER['HTTP_FORWARDED_FOR'];
    } else if (is($_SERVER, 'HTTP_FORWARDED')) {
        $ipAddress = $_SERVER['HTTP_FORWARDED'];
    } else if (is($_SERVER, 'REMOTE_ADDR')) {
        $ipAddress = $_SERVER['REMOTE_ADDR'];
    } else {
        $ipAddress = 'UNKNOWN';
    }

    return $ipAddress;
}

/**
 * Allowed IPS
 */
$allowedIPSArr = array(
    '127.0.0.1',
    '127.0.0.2',
);

if(!in_array(getClientIp(),$allowedIPSArr, true)){
// You might want to do some redirect here
    die();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...