본문 바로가기
프론트엔드/HTTP - 전

Content Security Policy (CSP)

by 5ub1n 2024. 9. 27.

콘텐츠 보안 정책


Content Security Policy(CSP)는 XSS(크로스 사이트 스크립팅) 및 데이터 주입 공격을 포함한 특정 유형의 공격을 탐지하고 완화하는 데 도움을 주는 추가적인 보안 계층이다.

이러한 공격은 데이터 도용, 웹사이트 훼손, 악성코드 배포 등 다양한 목적으로 사용된다.

 

CSP는 이전 버전과 완전히 호환되도록 설계되었다.

이전 버전과의 호환성에 대해 명시적으로 언급된 불일치가 있는 CSP 버전 2는 제외한다.

이를 지원하지 않는 브라우저는 이를 구현하는 서버에서 계속 작동하며 그 반대의 경우도 마찬가지다.

CSP를 지원하지 않는 브라우저는 이를 무시하고 평소대로 작동한다.

이 경우, CSP가 추가할 수 있는 추가적인 제한 없이 표준 동일 출처 정책의 보호만 적용된다.

 

CSP를 활성화하려면 Content-Security-Policy HTTP 헤더를 반환하도록 웹 서버를 구성해야 한다.

때로는 X-Content-Security-Policy 헤더에 대한 언급이 표시될 수 있지만 이는 이전 버전이므로 더 이상 지정할 필요가 없다.

 

또는 <meta> 요소를 사용하여 정책을 구성할 수 있다.

<meta
  http-equiv="Content-Security-Policy"
  content="default-src 'self'; img-src https://*; child-src 'none';" />

 

참고 : CSP 위반 보고서 전송과 같은 일부 기능은 HTTP 헤더를 사용할 때만 사용할 수 있다.

 


위협 Threats


크로스 사이트 스크립팅 완화 Mitigating cross-site scripting

콘텐츠 보안 정책(CSP)의 주요 목표는 XSS 공격을 완화하고 보고하는 것이다.

XSS 공격은 서버로부터 받은 콘텐츠에 대한 브라우저의 신뢰를 악용한다.

브라우저는 콘텐츠의 출처를 신뢰하기 때문에 피해자의 브라우저에서 악성 스크립트가 실행되며, 실제로는 그 출처가 아닌 곳에서 오는 경우에도 실행된다.

 

콘텐츠 보안 정책(CSP)를 통해 서버 관리자는 브라우저가 실행 가능한 스크립트의 유효한 출처로 간주해야 할 도메인을 지정함으로써 XSS가 발생할 수 있는 벡터를 줄이거나 제거할 수 있다.

CSP를 지원하는 브라우저는 허용된 도메인에서 받은 소스 파일에 로드된 스크립트만 실행하고, 그 외의 모든 스크립트(인라인 스크립트 및 이벤트 처리 HTML 속성을 포함한다)는 무시한다.

 

궁극적인 보호 방법으로, 스크립트 실행을 절대 허용하지 않으려는 사이트는 전역적으로 스크립트 실행을 금지할 수 있다.

 


패킷 스니핑 공격 완화 Mitigating packet sniffing attacks

콘텐츠를 로드할 수 있는 도메인을 제한하는 것 외에도, 서버는 사용할 수 있는 프로토콜을 지정할 수 있다.예를 들어, 이상적으로 보안 측면에서 서버는 모든 콘텐츠가 HTTPS를 사용하여 로드되어야 한다고 지정할 수 있다.완전한 데이터 전송 보안 전략은 데이터 전송을 위해 HTTPS 강제 적용뿐만 아니라, 모든 쿠키에 보안 속성을 표시하고 HTTP 페이지에서 HTTPS 페이지로 자동 리디렉션을 제공하는 것을 포함한다.또한, 사이트는 Strict-Transport-Security HTTP 헤더를 사용하여 브라우저가 암호화된 채널을 통해서만 사이트에 연결하도록 할 수 있다.

 

 

 

 

'프론트엔드 > HTTP - 전' 카테고리의 다른 글

Protocol upgrade mechanism  (0) 2024.09.12
Connection management in HTTP/1.x  (0) 2024.08.24
Evolution of HTTP  (0) 2024.07.15
Basics of HTTP  (0) 2024.07.15
Choosing Between www and non-www URLs  (0) 2024.06.23