Content-Security-Policy(이하 CSP)를 알고 가기 전에, 먼저 XSS(Cross Site Scripting)을 알아야 한다. XSS의 의미는 '사이트 간 스크립팅'으로, 공격자가 웹사이트에 악의적인 스크립트 코드를 삽입할 수 있는 웹 취약점을 말한다. 이러한 코드는 유저 측에서 실행되고 공격자가 사용자의 세션을 가로채거나(도용), 웹사이트 변조, 악의적인 컨텐츠 삽입, 피싱 공격 등을 가능하게 한다. 

 

CSP는 이러한 XSS를 포함한 특정 유형의 공격 방지에 도움이 되는 보안 계층이다. CSP를 활성화하는 방법은 첫째로 웹서버에서 Content-Security-Policy HTTP 헤더를 반환하게 하는 방법이 있고 두번째 방법은 여기서 알아볼 <meta> 태그를 사용해 정책을 구성하는 것이다.

 

<meta http-equiv="Content-Security-Policy" content="" />

기본 형태는 위와 같다. content="" 안에 "key1 value1; key2 value2; key3 value3;" 형태로 연속적으로 값을 지정해주면 된다. key에 들어갈 수 있는 주요 값들은 https://content-security-policy.com/#source_list 여기에 자세히 나와 있다.

 

 

기본적으로 웹 컨텐츠는 모든 브라우저에서 같게 보여야 한다. 

하지만 IE와 같은 구버전 브라우저의 경우 지원하지 않는 기능들이 있고, 

현실적으로 구버전이나 특정 기능이 지원되지 않는 브라우저에서 어떻게 보이게 할 것인가에 대한

방법론으로 점진적 향상법과 우아한 성능저하법이 있다.

 

점진적 향상법

구버전 브라우저에서는 기본적인 컨텐츠 가독이 가능하도록 하면서,

최신버전 브라우저에서는 부가효과 및 기능 또한 가능하도록 개발하는 방법이다.

 

우아한 성능저하법

최신버전 브라우저를 기준으로 개발을 하고,

구버전 브라우저에서는 대체되는 다른 방법을 사용하거나 구버전이 지원되지 않는다는 메시지를 표시하는 방법이다.

 

 

점진적 향상법은 구버전(기본적인 컨텐츠 가독)에서 > 최신버전(부가효과 및 기능)

우아한 성능저하법은 최신버전에서 > 구버전(대체방법 사용 혹은 지원되지 않음 표시)로 정리하면 될 듯하다.

 

 

참고

https://blog.sonim1.com/214

'프론트엔드 > 이론' 카테고리의 다른 글

Content-Security-Policy 정의하기  (0) 2023.04.13

+ Recent posts