> 백엔드 개발 > PHP 튜토리얼 > HTTP 401 무단 이해: PHP 개발 시 액세스 제한 문제

HTTP 401 무단 이해: PHP 개발 시 액세스 제한 문제

王林
풀어 주다: 2024-04-09 16:06:01
원래의
1117명이 탐색했습니다.

HTTP 401 무단 오류는 서버가 인증되지 않은 요청을 수락할 수 없음을 나타냅니다. 이 문제를 해결하려면 다음 단계를 따르십시오. HTTP 기본 인증을 활성화하여 사용자에게 자격 증명을 묻는 메시지를 표시합니다. 제공된 자격 증명을 확인하고 승인된 사용자에게만 액세스를 허용합니다.

揭秘 HTTP 401 未授权:PHP 开发中的访问限制问题

HTTP 401 무단 공개: PHP 개발 시 액세스 제한 문제

HTTP 401 무단 오류 코드는 서버가 확인 없이 요청을 거부한다는 의미입니다. 이는 서버가 보호된 리소스에 액세스하려면 유효한 자격 증명이 필요함을 의미합니다. PHP에서는 HTTP_UNAUTHORIZED 상수를 사용하여 이 오류 코드를 쉽게 생성할 수 있습니다.

header('HTTP/1.1 401 Unauthorized');
로그인 후 복사

무단 액세스를 방지하려면 PHP 애플리케이션에서 다음 단계를 구현할 수 있습니다.

1 HTTP 기본 인증 활성화

// 在 PHP 脚本的顶部添加以下行:
header('WWW-Authenticate: Basic realm="Restricted Area"');
로그인 후 복사

This 팝업 대화 상자를 통해 사용자에게 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다.

2. 자격 증명 확인

if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
  // 从服务器变量中获取提供的凭据
  $username = $_SERVER['PHP_AUTH_USER'];
  $password = $_SERVER['PHP_AUTH_PW'];
  
  // 检查凭据的有效性,例如:
  if ($username === 'admin' && $password === 'password') {
    // 授权已验证的用户
  } else {
    // 拒绝访问
    header('HTTP/1.1 401 Unauthorized');
  }
} else {
  // 拒绝访问,因为未提供凭据
  header('HTTP/1.1 401 Unauthorized');
}
로그인 후 복사

실용적 예

다음은 페이지를 보호하고 승인된 사용자에게만 액세스를 허용하는 방법을 보여주는 간단한 PHP 스크립트입니다.

<?php
// 启用 HTTP 基本身份验证
header('WWW-Authenticate: Basic realm="Protected Area"');

// 验证凭据
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
  $username = $_SERVER['PHP_AUTH_USER'];
  $password = $_SERVER['PHP_AUTH_PW'];

  // 检查凭据的有效性(例如,从数据库中检索)
  if ($username === 'john' && $password === 'example') {
    // 授权用户,显示受保护的内容
    echo '<h1>欢迎,' . $username . '!</h1>';
  } else {
    // 凭据无效,拒绝访问
    header('HTTP/1.1 401 Unauthorized');
  }
} else {
  // 未提供凭据,拒绝访问
  header('HTTP/1.1 401 Unauthorized');
}
?>
로그인 후 복사

다음 단계를 따르면 쉽게 구현할 수 있습니다. 권한이 있는 사용자만 중요한 데이터나 리소스에 액세스할 수 있도록 PHP 애플리케이션의 액세스 제한을 적용합니다.

위 내용은 HTTP 401 무단 이해: PHP 개발 시 액세스 제한 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿