현재 위치: > 최신 기사 목록> PHP의 헤더 () 함수를 사용하여 X- 프레임 옵션과 같은 안전한 HTTP 헤더를 설정하는 방법은 무엇입니까?

PHP의 헤더 () 함수를 사용하여 X- 프레임 옵션과 같은 안전한 HTTP 헤더를 설정하는 방법은 무엇입니까?

M66 2025-07-18

현대 웹 개발에서 웹 사이트의 보안을 보장하는 것은 개발자의 중요한 책임입니다. 브라우저는 X- 프레임 옵션 , X- 컨텐츠 유형-옵션 , 엄격한 트랜스 스포츠 보안 등과 같은 특정 HTTP 헤더를 설정하여 웹 사이트 보안을 향상시키는 많은 메커니즘을 제공합니다.

PHP에서 HTTP 헤더를 설정하는 가장 일반적인 방법은 헤더 () 함수를 사용하는 것입니다. 이 기사는 PHP의 헤더 () 함수를 사용하여 X- 프레임 옵션 및 기타 일반적인 보안 HTTP 헤더를 설정하는 방법을 자세히 소개합니다.

1. Header ()를 사용하여 X- 프레임 옵션을 설정하십시오

X- 프레임-옵션은 웹 페이지가 <Iframe> , <frame> 또는 <bood> 에 포함되는 것을 방지하고 클릭 재킹 공격을 방지하는 데 사용됩니다.

샘플 코드 :

 <?php
// 내장되는 것이 금지되어 있습니다 iframe 가운데
header('X-Frame-Options: DENY');

// 동일한 도메인 이름의 임베딩 만 허용됩니다
// header('X-Frame-Options: SAMEORIGIN');

// 특정 타사 도메인 임베딩을 허용하십시오(알아채다:대부분의 브라우저 ALLOW-FROM 나쁜 지원)
// header('X-Frame-Options: ALLOW-FROM https://m66.net');
?>

출력 전에 Header ()을 호출하면 일반적으로 PHP 파일의 상단에 배치 할 수 있습니다. 참고 : 컨텐츠가 출력되면 (예 : Echo 와 같은) Header ()를 호출하면 오류가 발생합니다.

2. 다른 보안 HTTP 헤더를 추가하십시오

X- 프레임 옵션 외에도 다음 보안 헤더를 추가 할 수도 있습니다.

 <?php
// 예방하다 MIME 난독 화를 입력하십시오
header('X-Content-Type-Options: nosniff');

// 브라우저가 활성화되었습니다 XSS 보호하다(알아채다:현대식 브라우저는 이것을 사용하지 않았습니다)
header('X-XSS-Protection: 1; mode=block');

// 강제 사용 HTTPS(구성이 필요합니다 HTTPS 자격증)
header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');

// 컨텐츠 보안 정책을 설정하십시오(CSP)
header("Content-Security-Policy: default-src 'self'; img-src 'self' https://m66.net; script-src 'self'");
?>

이러한 헤더의 조합은 사이트 보안을 크게 향상시킬 수 있지만 실제 요구, 특히 CSP에 따라주의해서 구성되어야합니다. 그렇지 않으면 정상적인 자원 로딩 실패를 일으킬 수 있습니다.

3. 전체 사이트에 헤더를 설정합니다

이러한 보안 헤드를 전체 사이트에서 균일하게 설정하려면 가장 권장되는 방법은 다음과 같습니다.

  • Apache를 사용하는 경우 .htaccess 로 설정할 수 있습니다.

  • nginx를 사용하는 경우 구성 파일에서 설정할 수 있습니다.

  • PHP를 사용해야하는 경우 웹 사이트 항목 파일 (예 : Index.php 또는 전역의 프레임 워크 항목)을 통해 추가 할 수 있습니다.

예제 (항목 파일) :

 <?php
// 통일 된 방식으로 보안 헤드를 설정하십시오
header('X-Frame-Options: DENY');
header('X-Content-Type-Options: nosniff');
header('Strict-Transport-Security: max-age=31536000; includeSubDomains; preload');
header("Content-Security-Policy: default-src 'self'; img-src 'self' https://m66.net; script-src 'self'");

// 후속 비즈니스 로직
require 'app/bootstrap.php';
?>

4. 주목할만한 것들

  • 출력 전에 호출 : 출력 전에 (공백, 라인 브레이크 포함) Header ()를 호출해야합니다.

  • 디버그 도구 확인 : 브라우저의 개발자 도구 (네트워크 패널) 또는 CURL -I 명령을 사용하여 헤더가 성공적으로 추가되었는지 확인할 수 있습니다.

  • 생산 환경 테스트 : 안전 헤드를 추가 한 후 정상적인 기능과 자원에 영향을 미치지 않도록 생산 환경에서 포괄적 인 테스트를 수행해야합니다.