TianDev

Thiết lập Basic Authentication bằng PHP

Posted: December 2, 2019 by anhkevin

Xác thực truy cập cơ bản (Basic Authentication) là một trong những phương pháp xác thực đơn giản khi cần hạn chế truy cập vào một website hoặc link nào đó.

- Thiết lập hàm basic_auth

function basic_auth($auth_list){ 
    if (isset($_SERVER['PHP_AUTH_USER']) and isset($auth_list[$_SERVER['PHP_AUTH_USER']])){
        if (md5($auth_list[$_SERVER['PHP_AUTH_USER']]) == $_SERVER['PHP_AUTH_PW']){
            return $_SERVER['PHP_AUTH_USER'];
        }
    }
 
    header('WWW-Authenticate: Basic realm="Restricted Area"');
    header('HTTP/1.0 401 Unauthorized');
    header('Content-type: text/html; charset='.mb_internal_encoding());

    exit();
}

- Sử dụng hàm này để thiết lập Basic auth

  • user: admin
  • pass: password (md5 = 5f4dcc3b5aa765d61d8327deb882cf99)
basic_auth(array("admin" => "5f4dcc3b5aa765d61d8327deb882cf99"));

- Hạn chế những IP cố định hiển thị Basic auth

if(!in_array($_SERVER['REMOTE_ADDR'], array("1.1.1.1", "2.2.2.2"))){
      basic_auth(array("admin" => "5f4dcc3b5aa765d61d8327deb882cf99"));
}