- Apache에서 보안 헤더 설정 방법
아래는 Apache 설정 파일 또는 .htaccess 파일에 추가할 수 있는 설정이다.
<IfModule mod_headers.c>
# HttpOnly 및 Secure 속성 추가
Header always edit Set-Cookie ^(.*)$ "$1; HttpOnly; Secure"
# Content-Security-Policy 헤더 설정
Header set Content-Security-Policy "default-src 'self'; script-src 'self';"
# X-Content-Type-Options 헤더 설정
Header set X-Content-Type-Options "nosniff"
# X-Frame-Options 헤더 설정
Header set X-Frame-Options "DENY"
# X-XSS-Protection 헤더 설정
Header set X-XSS-Protection "1; mode=block"
</IfModule>
- .htaccess 파일
- 웹 애플리케이션 루트 디렉토리에 .htaccess 파일을 생성하거나 기존 파일에 위 설정을 추가한다.
- Apache 설정 파일 (httpd.conf, apache2.conf)
- Apache의 메인 설정 파일에 위 설정을 추가한 후 서버를 재시작하여 적용한다.
- 가상 호스트별로 적용하려면 해당 가상 호스트 설정 블록 안에 추가한다.
- 각 설정의 설명
- HttpOnly 및 Secure 속성 추가
- 쿠키에 HttpOnly와 Secure 속성을 추가하여 클라이언트 측 스크립트에서 접근하지 못하도록 하고, HTTPS에서만 쿠키를 전송하도록 강제한다.
- Secure 속성은 HTTPS에서만 쿠키를 전송하도록 하며, 이는 추가적인 보안을 제공한다. 만약 HTTPS를 사용하지 않는다면 Secure 속성은 생략할 수 있다.
- Content-Security-Policy (CSP)
- 외부 스크립트 및 리소스를 제한하여 XSS 공격을 방지한다. 이 설정은 모든 리소스를 현재 출처('self')에서만 로드하도록 지정한다.
- X-Content-Type-Options
- 브라우저가 MIME 타입을 추측하지 않도록 하여 MIME 스니핑 공격을 방지한다.
- X-Frame-Options:
- 웹 페이지가 <iframe>이나 <frame> 내에 포함되지 않도록 하여 클릭재킹(clickjacking) 공격을 방지한다.
- X-XSS-Protection
- 브라우저의 기본 XSS 필터를 활성화하여 XSS 공격을 방어한다.