>백엔드 개발 >PHP 튜토리얼 >PHP에서 HTTPS 연결 상태를 어떻게 안정적으로 확인할 수 있습니까?

PHP에서 HTTPS 연결 상태를 어떻게 안정적으로 확인할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-03 19:17:13856검색

How Can I Reliably Determine HTTPS Connection Status in PHP?

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

많은 온라인 자습서에서는 $_SERVER['HTTPS']를 확인하여 확인하도록 제안합니다. 서버 연결이 HTTPS를 통해 보호되는지 여부. 하지만 특정 서버에서는 $_SERVER['HTTPS']가 정의되지 않아 오류가 발생할 수 있습니다.

HTTPS 감지를 위한 대체 변수

이 문제를 해결하려면 다음을 고려하세요. $_SERVER['HTTPS']가 연결되어 있는 경우에도 HTTPS 연결 상태를 안정적으로 표시하는 isSecure() 함수를 사용합니다. 정의되지 않음:

function isSecure() {
  return
    (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
    || $_SERVER['SERVER_PORT'] == 443;
}

호환성 및 고려 사항

  • IIS 호환성: 이 기능은 IIS 서버에서 작동합니다.
  • **정의되지 않은 $_SERVER['HTTPS']:** 문서에 다음과 같이 명시되어 있음에도 불구하고 $_SERVER['HTTPS']는 HTTPS 연결에 대해 설정되어야 하며 특정 구성에서는 정의되지 않을 수 있습니다.
  • Apache 1.x 서버: Apache 1.x 서버는 $_SERVER를 정의하지 않을 수 있습니다. 보안 연결을 위한 ['HTTPS'].
  • 포트 443 확인: 규칙 포트 443에서 이루어진 연결은 일반적으로 보안 소켓을 사용한다고 제안합니다.

로드 밸런서 및 HTTP_X_FORWARDED_PROTO

이 함수는 클라이언트와 클라이언트 간의 연결을 테스트하지 않습니다. 잠재적인 로드 밸런서. 이를 확인하기 위해 HTTP_X_FORWARDED_PROTO 헤더를 활용할 수 있지만 구현이 더 복잡합니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.