JJANG-JOON
article thumbnail
Published 2023. 10. 22. 00:17
CSP는 무엇인가 보안
반응형

 

 

CSP

 

는 Content Security Policy의 약자로, 웹 페이지에서 허용되는 리소스의 종류와 출처를 지정하는 정책이며 CSP를 사용하면 웹 페이지에서 악성 리소스의 실행을 차단하여 보안을 강화할 수 있다.

 

CSP는 웹 브라우저에서 구현된다. 웹 브라우저는 웹 페이지의 CSP 정책을 확인하고, 해당 정책에 위배되는 리소스를 차단한다.

 

CSP는 다음과 같은 방법으로 보안을 강화한다.

 

 

 

 

  • 자바스크립트 공격 차단

자바스크립트는 웹 페이지의 기능을 확장하는 데 사용되는 강력한 도구이지만, 악용될 경우 사용자의 정보를 훔치거나 시스템을 손상시킬 수 있다. CSP를 사용하면 특정 도메인에서만 자바스크립트를 실행하도록 허용하여 자바스크립트 공격을 차단할 수 있다.

 

 

 

 

 

  • 스타일 시트 공격 차단

스타일 시트는 웹 페이지의 모양을 조정하는 데 사용되는 도구이지만, 악용될 경우 사용자의 정보를 훔치거나 시스템을 손상시킬 수 있다. CSP를 사용하면 특정 도메인에서만 스타일 시트를 로드하도록 허용하여 스타일 시트 공격을 차단할 수 있다.

 

 

 

 

 

  • 이미지 공격 차단

이미지는 웹 페이지에 이미지를 표시하는 데 사용되는 도구이지만, 악용될 경우 사용자의 정보를 훔치거나 시스템을 손상시킬 수 있다. CSP를 사용하면 특정 도메인에서만 이미지를 로드하도록 허용하여 이미지 공격을 차단할 수 있다.

CSP는 다음과 같은 방법으로 구현할 수 있다.

 

 

 

 

 

  • HTML 메타 태그

HTML 메타 태그를 사용하여 CSP 정책을 지정할 수 있다.

<meta http-equiv="Content-Security-Policy" content="default-src https://example.com;">
 

위의 예제는 모든 리소스를 https://example.com에서만 허용하는 CSP 정책을 지정한다.

 

 

 

 

  • HTTP 헤더

HTTP 헤더를 사용하여 CSP 정책을 지정할 수 있다.

Content-Security-Policy: default-src https://example.com

위의 예제는 HTML 메타 태그를 사용하여 지정한 것과 동일한 CSP 정책을 지정한다.

CSP는 웹 페이지의 보안을 강화하는 데 효과적인 방법이며 CSP를 사용하면 악성 리소스의 실행을 차단하여 웹 사이트를 보호할 수 있다.

 

 

 

 

 

 

CSP (Content Security Policy) 디렉티브는 웹 페이지에서 허용하거나 제한하려는 리소스 및 동작을 정의하는 지시문이다. 디렉티브는 웹 애플리케이션에서 어떤 리소스를 로드하고 어떤 작업을 허용하는지를 제어하기 위해 사용된다.

 

몇가지 예시를 들어보겠다.

 

 

 

 

 

 

default-src 디렉티브:

 

default-src 디렉티브는 웹 페이지에 대한 기본 리소스 로딩 정책을 지정하며 이 디렉티브가 설정되지 않으면, 다른 디렉티브가 상속된다.

 

default-src 'self' www.example.com;

이 예제에서는 웹 페이지에서 동일 출처의 리소스 및 www.example.com 도메인의 리소스만을 로드할 수 있다.

 

 

 

 

 

 

 

script-src 디렉티브:

 

script-src 디렉티브는 스크립트 파일의 로딩을 제어하며 이 디렉티브를 사용하여 어떤 출처의 스크립트를 로드할 수 있는지를 정의한다.

 

script-src 'self' 'unsafe-inline' 'nonce-RANDOM-NONCE' https://cdn.example.com;

 

이 예제에서는 동일 출처, 무작위 nonce 값, 그리고 https://cdn.example.com 도메인에서 스크립트를 로드할 수 있다.

 

 

 

 

 

 

style-src 디렉티브:

 

style-src 디렉티브는 스타일 시트 파일의 로딩을 제어하며 이 디렉티브를 사용하여 어떤 출처의 스타일을 로드할 수 있는지를 정의한다.

 

style-src 'self' 'nonce-RANDOM-NONCE' https://fonts.example.com;

 

이 예제에서는 동일 출처, 무작위 nonce 값, 그리고 https://fonts.example.com 도메인에서 스타일 시트를 로드할 수 있다.

 

 

 

 

 

img-src 디렉티브:

 

img-src 디렉티브는 이미지 리소스의 로딩을 제어하며 이 디렉티브를 사용하여 어떤 출처의 이미지를 로드할 수 있는지를 정의한다

 

img-src 'self' data: https://images.example.com;

 

이 예제에서는 동일 출처, 데이터 URI, 그리고 https://images.example.com 도메인에서 이미지를 로드할 수 있다.

 

 

 

 

 

 

 

connect-src 디렉티브:

 

connect-src 디렉티브는 원격 서버와의 연결을 제어하며 이 디렉티브를 사용하여 어떤 출처의 서버와 통신할 수 있는지를 정의한다.

 

connect-src 'self' api.example.com;

 

이 예제에서는 동일 출처 및 api.example.com 도메인과의 연결만 허용된다.

 

 

 

 

 


 

 

 

 

 

 

 

 

반응형

'보안' 카테고리의 다른 글

OAuth 인증이 취약한 이유  (0) 2024.01.29
char() , varchar()-- char() 취약점  (0) 2023.11.06
UTM ? 알아볼게요  (0) 2023.10.21
ELK 무엇인가 ?  (0) 2023.10.11
사이드 채널 공격은 무엇인가 ?  (0) 2023.09.22
profile

JJANG-JOON

@JJANG-JOON

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...