> 백엔드 개발 > PHP 튜토리얼 > $_SERVER['HTTPS']를 사용하지 않고 HTTPS 연결 상태를 어떻게 안정적으로 확인할 수 있습니까?

$_SERVER['HTTPS']를 사용하지 않고 HTTPS 연결 상태를 어떻게 안정적으로 확인할 수 있습니까?

DDD
풀어 주다: 2024-12-05 21:39:11
원래의
1015명이 탐색했습니다.

How Can I Reliably Determine HTTPS Connection Status Without Using $_SERVER['HTTPS']?

$_SERVER['HTTPS'] 없이 HTTPS 연결 상태 확인

$_SERVER['HTTPS']를 사용하여 서버 연결의 보안을 확인하려고 할 때 'HTTPS'], 변수가 정의되지 않아 오류가 발생하는 시나리오가 발생할 수 있습니다. 이를 극복하려면 신뢰할 수 있는 결과를 지속적으로 생성하는 대체 솔루션을 고려하십시오.

HTTPS 감지를 위한 향상된 코드

$_SERVER['HTTPS에 의존하지 않고 연결 상태를 확인하려면 '], 다음 코드를 구현합니다.

function isSecure() {
  return
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || $_SERVER['SERVER_PORT'] == 443;
}
로그인 후 복사

호환성 및 고려 사항

이 코드는 IIS를 포함한 다양한 서버 구성과의 호환성을 나타냅니다.

PHP.net 문서 및 사용자 피드백에 따르면:

  • 스크립트가 HTTPS를 통해 액세스하면 $_SERVER['HTTPS']에는 비어 있지 않은 값이 포함됩니다.
  • IIS의 경우 ISAPI를 사용하면 HTTPS가 아닌 연결 중에 $_SERVER['HTTPS']가 "off"로 설정될 수 있습니다.
  • Apache 1.x 서버는 보안 연결의 경우에도 $_SERVER['HTTPS']를 정의하지 않을 수 있습니다.

추가 포인트

  • 포트 443에 설정된 연결은 일반적으로 보안 소켓을 나타냅니다. 그러나 이는 단지 관례일 뿐 보장되는 것은 아닙니다.
  • 클라이언트와 서버 사이에 로드 밸런서가 존재하는 경우 코드는 클라이언트-로드 밸런서 연결을 평가하지 않고 로드 밸런서를 평가합니다. 서버 연결. 전자를 평가하려면 HTTP_X_FORWARDED_PROTO 헤더 사용을 고려하세요. 하지만 이 방법은 더 복잡합니다.

위 내용은 $_SERVER['HTTPS']를 사용하지 않고 HTTPS 연결 상태를 어떻게 안정적으로 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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