메타태그와 CSP

박다영·2023년 1월 26일
0

매일의 개발기록

목록 보기
25/28

메타 태그 meta tag

메타 태그(meta tag)는 웹페이지가 담고 있는 컨텐츠가 아닌 
웹페이지 자체의 정보를 명시하기 위한 목적으로 사용되는 HTML 태그


콘텐츠 보안 정책 Content Security Policy

공격자가 주입한 스크립트를 차단하는 보안 메커니즘
CSP는 모든 인라인 javascript를 허용하지 않는다.
또한 javascript를 로드하는 외부 URL의 화이트리스트를 만들도록 요구한다.
결과적으로 모든 Javascript는 신뢰할 수 있는 URL에서만 전송되야 하기 때문에
공격자가 웹 페이지에 XSS를 삽입하려고 해도 실행되지않는다. (이게 CSP를 사용하는 가장 중요한 이유)

<meta
  http-equiv="Content-Security-Policy"
  content="default-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net; script-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net; img-src 'self' 'unsafe-inline' https://dapi.kakao.com http://*.daumcdn.net;"
/>

그런데 위처럼 CSP 메타태그의 script-src에 'unsafe-inline'을 넣으면,
HTML에 javascript를 다시 허용하게 되어 XSS가 다시 가능해지게 되기 때문에
사실상 CSP 콘텐츠 보안 정책 의 가장 중요한 부분이 비활성화 되는 것과 마찬가지다.
XSS 삽입할정도 기술이면, 'unsafe-inline' 정도는 충분히 악용할 수 있을 것이기 때문이다.

참고 :
script-src에서 'unsafe-inline'을 사용하는 것이 나쁜 이유
react-helmet 으로 React 에서 SEO 메타태그 설정
메타 태그를 통한 검색엔진 최적화 (SEO)
이해하기 쉬운 웹 보안 모델 이야기 2 (CSP)

profile
개발과 디자인 두마리 토끼를!

0개의 댓글