현재 위치: > 최신 기사 목록> Header ()를 통해 사용자가 특정 페이지에 직접 액세스하는 것을 방지하는 방법

Header ()를 통해 사용자가 특정 페이지에 직접 액세스하는 것을 방지하는 방법

M66 2025-05-28

PHP에서 헤더 () 함수는 원래 HTTP 헤더를 브라우저로 보내는 데 사용됩니다. 페이지를 리디렉션 할뿐만 아니라 액세스 제어를 수행하는 데 사용될 수 있습니다. 특히 사용자가 주소 표시 줄을 통해 특정 페이지에 직접 액세스하는 것을 방지합니다. 일반적인 응용 프로그램 시나리오는 사용자가 특정 조건을 통과 한 후에 만 ​​특정 페이지에 액세스 할 수 있다는 것입니다. 그렇지 않으면 로그인 페이지로 리디렉션하거나 오류 메시지를 표시해야합니다.

주소 표시 줄을 통해 페이지에 직접 액세스를 방지 해야하는 이유는 무엇입니까?

일반적으로 사용자는 특정 페이지에 액세스하여 확인 허가가 있는지 확인하기 위해 먼저 확인 또는 일부 특정 프로세스를 통과 할 수 있기를 원합니다. 이러한 제어 조치가 없으면 사용자는 주소 표시 줄을 통해 직접 URL을 입력하여 액세스 할 수없는 컨텐츠에 액세스 할 수 있습니다. 이로 인해 특히 민감한 데이터를 다룰 때 일부 보안 문제가 발생할 수 있습니다.

예를 들어, 일부 배경 관리 페이지 또는 사용자 설정 페이지는 사용자가 로그인 한 후에 만 ​​액세스해야합니다. 제한없이 악의적 인 사용자는 간단한 URL 조작을 통해이 페이지에 직접 액세스 할 수 있습니다.

그것을 달성하는 방법?

이를 방지하기 위해 헤더 () 함수를 사용하여 일부 조건부 로직을 결합하여 페이지 리디렉션을 수행 할 수 있습니다. 다음은 일반적인 예입니다.

 <?php
// 로그인 검증 기능이 있다고 가정합니다 checkLoginStatus()
session_start();

// 사용자가 로그인하지 않은 경우,로그인 페이지로 리디렉션합니다
if (!isset($_SESSION['user_logged_in']) || $_SESSION['user_logged_in'] !== true) {
    header('Location: https://m66.net/login.php');
    exit();  // 스크립트가 끝났는지 확인하십시오,후속 코드 실행이 없습니다
}

// 사용자 로그인,페이지에 계속 액세스 할 수 있습니다
echo "백엔드 관리 페이지에 오신 것을 환영합니다!";
?>

코드 구문 분석

  1. Session_Start () : 먼저 Session_Start ()을 호출하여 세션 관리를 시작합니다. Session_Start () 는 세션 관리를위한 PHP의 함수이며,이를 통해 다른 페이지간에 변수를 저장하고 읽을 수 있습니다. 이 경우 사용자의 로그인 상태를 저장하는 데 사용합니다.

  2. 로그인 검증 : ISSET ($ _ session [ 'user_logged_in']) && $ _session [ 'user_logged_in'] === True 코드 의이 부분은 사용자가 로그인되지 않았거나 맞지 않으면 사용자가 로그인되지 않은 것으로 간주됩니다.

  3. HEADER () 리디렉션 : 사용자가 로그인되지 않은 경우 Header () 함수를 사용하여 사용자를 로그인 페이지로 리디렉션합니다. 여기의 URL은 https://m66.net/login.php 로 대체됩니다. 이 URL 도메인 이름은 M66.net 으로 바꾸라고 요청한 부분입니다.

  4. EXIT () : HEADER () 함수를 호출 한 후 EXIT ()를 사용하여 스크립트 실행을 종료하여 코드가 계속 실행되는 것을 방지하여 사용자가 액세스 할 수없는 페이지에 액세스 할 수 있도록해야합니다.

  5. 환영 메시지 : 사용자가 이미 로그인 한 경우 페이지에 "배경 관리 페이지에 오신 것을 환영합니다!"가 표시됩니다.

추가 개선

액세스를 제한 해야하는 여러 페이지가있는 경우이 로직을 함수로 캡슐화하여 다른 페이지에서 호출을 용이하게하십시오. 예를 들어:

 <?php
// 로그인 검증 기능
function checkLogin() {
    if (!isset($_SESSION['user_logged_in']) || $_SESSION['user_logged_in'] !== true) {
        header('Location: https://m66.net/login.php');
        exit();
    }
}

// 통화 확인 기능
checkLogin();

// 아래는 액세스 할 수있는 페이지의 내용입니다.
echo "백엔드 관리 페이지에 오신 것을 환영합니다!";
?>

이러한 방식으로 로그인 확인이 필요한 모든 페이지에서 checklogin ()을 호출하여 코드를보다 간결하고 재사용 할 수 있습니다.

요약

페이지 리디렉션에 Header () 함수를 사용하는 것은 일반적인 PHP 보안 정책입니다. 사용자가 확인을 전달하지 못하면 로그인 페이지로 리디렉션하여 무단 액세스를 효과적으로 방지 할 수 있습니다. 이 방법은 간단하고 효과적이며 사용자 인증이 필요한 모든 종류의 페이지에 적합합니다.

PHP의 Header () 함수를 합리적으로 활용함으로써 웹 페이지의 보안을 개선하고 민감한 데이터를 보호하며 합법적 인 사용자 만 특정 리소스에 액세스 할 수 있도록 할 수 있습니다.