현재 위치: > 최신 기사 목록> PHP 보안 인증 및 인증 완료 가이드 : 실제 방법 및 코드 예제

PHP 보안 인증 및 인증 완료 가이드 : 실제 방법 및 코드 예제

M66 2025-07-21

PHP의 보안 인증 및 승인 개요

PHP 개발에서 사용자 신원의 진위와 액세스 권한의 합리적인 제어를 보장하는 것이 안전한 웹 애플리케이션을 구축하는 데 핵심입니다. 이 기사는 몇 가지 일반적인 인증 및 승인 기술을 소개하고 코드 예제와 함께 더 안전한 응용 프로그램 환경을 달성하는 데 도움이됩니다.

인증 : 사용자의 신원을 확인하십시오

기본 HTTP 인증

HTTP 기본 인증은 브라우저 팝업 창을 통해 사용자 이름과 비밀번호를 요청합니다. 간단하고 사용하기 쉽지만 전송 중 보안이 낮으며 내부 또는 보안 요구 시나리오에 적합합니다.

Code example:

 // HTTP 기본 인증 헤더를 보내십시오 ( 'www-authenticate : Basic Realm = "Protected Area"');
헤더 ( 'http/1.0 401 무단 무단');

// 제공된 자격 증명 if (isset ($ _ server [ 'php_auth_user']) && isset ($ _ server [ 'php_auth_pw'])) {
    $ username = $ _server [ 'php_auth_user'];
    $ password = $ _server [ 'php_auth_pw'];

    // 데이터베이스에서 사용자를 찾으십시오 $ stmt = $ mysqli-> 준비 ( "사용자에서 username =? and password =?");
    $ stmt-> bind_param ( "ss", $ username, $ password);
    $ stmt-> execute ();
    $ result = $ stmt-> get_result ();
    $ stmt-> close ();

    if ($ result-> num_rows> 0) {
        // 확인이 성공하고 액세스가 허용됩니다} else {
        // 검증이 실패하여 401 무단 응답 에코 "무단 액세스"를 표시합니다.
    }
}

형태 인증

HTML 양식을 통해 사용자 이름과 비밀번호를 제출하는 것은 웹 응용 프로그램에서 가장 일반적으로 사용되는 인증 방법이며 세션 관리를 결합하여 사용자 로그인 상태 유지 관리를 달성합니다.

Code example:

 // 프로세스 로그인 양식 제출 if (isset ($ _ post [ 'username']) && isset ($ _ post [ 'password']) {
    $ username = $ _post [ 'username'];
    $ password = $ _post [ 'password'];

    // 데이터베이스에서 사용자를 찾으십시오 $ stmt = $ mysqli-> 준비 ( "사용자에서 username =? and password =?");
    $ stmt-> bind_param ( "ss", $ username, $ password);
    $ stmt-> execute ();
    $ result = $ stmt-> get_result ();
    $ stmt-> close ();

    if ($ result-> num_rows> 0) {
        // 확인이 성공적으로, 인증 세션 세션 _start ()을 만듭니다.
        $ _session [ '인증 된'] = true;

        // 보호 구역 헤더로 리디렉션 ( "위치 : protected_area.php");
    } 또 다른 {
        // 확인 실패, 오류 메시지 표시 echo "유효하지 않은 사용자 이름 또는 비밀번호";
    }
}

승인 : 사용자 액세스 권한을 제어합니다

역할 승인

사용자 역할을 기반으로 한 관리 액세스 권한은 관리자와 일반 사용자 간의 권한 차이와 같은 여러 사용자의 애플리케이션에서 일반적입니다.

Code example:

 // 사용자가 특정 보호 영역에 액세스하는 데 필요한 권한이 있는지 확인합니다. if (isset ($ _ session [ 'user_role']) && $ _session [ 'user_role'] == 'admin') {
    // 액세스 허용}

자원 승인

사용자가 권한 내에서만 리소스에만 액세스 할 수 있도록 특정 리소스 (예 : 파일, 데이터베이스 레코드)에 대한 액세스를 제어합니다.

Code example:

 // 사용자 ID $ path = '/Uploads/'에 따라 파일 액세스 권한을 확인하십시오. $ _get [ 'file_id'];
if (file_exists ($ path) && is_file ($ path)) {
    $ fileowner = 'user_'. $ _get [ 'user_id'];
    if (파일 소유자 ($ path) == $ 파일 소유자) {
        // 파일에 대한 액세스 허용}
}

포괄적 인 실제 사례

게시판 응용 프로그램에서 위의 인증 및 인증 메커니즘을 결합 할 수 있습니다.

  • 사용자는 HTTP 기본 인증 또는 양식 인증을 통해 로그인합니다.
  • 인증이 성공하면 세션을 작성하고 역할을 할당하십시오 (예 : 등록 된 사용자 또는 관리자).
  • 해당 역할을 가진 사용자 만 관리 배경과 같은 제한된 영역에 액세스 할 수 있습니다.

요약

PHP 개발자는 인증 및 승인 프로세스를 합리적으로 설계함으로써 웹 응용 프로그램의 보안을 효과적으로 향상시킬 수 있습니다. 이 기사에서 제공 한 샘플 코드 및 아이디어는 안전한 액세스 제어를 구현하기위한 실질적인 참조를 제공하여보다 안정적이고 안정적인 애플리케이션 시스템을 만드는 데 도움이됩니다.