2021_04_29

유지원·2021년 4월 29일
0

TIL - Browser Security Model

1. Browser Security Model

1) CORS

[CORS란?]
MDN에 따르면 CORS란 '추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제' 라고 정의되어있다. 이게 무슨 뜻일까..?

이전에는 Same-origin policy 라는 보안 정책을 따랐다.
어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 보안 방식이다. 즉, 하나의 브라우저는 하나의 서버와만 연결을 허용하는 것이다. 이는 잠재적으로 해로울 수 있는 문서를 분리함으로써 문서가 공격받을 수 있는 경로를 줄여준다는 중요한 장점이 있었다.

그러나 현대에는 대부분 프론트엔드 서버 + 백엔드 서버로 이루어져있기 때문에 기존의 Same-origin policy 정책으로는 두 개의 서버를 모두 연결할 수 없다는 문제점이 발생하였다. 그래서 예외 상황을 만들어서 추가적으로 서버를 연결할 수 있도록 새로운 기법을 만들었는데 이러한 기법을 CORS(교차 출처 리소스 공유) 라고 한다.

동일출처와는 바로 리소스 공유가 가능하고, 다른 출처와는 CORS를 통해 처리를 해야지만 리소스 공유가 가능하다.

[동작하는 방식]
-- Simple requests
CORS 허용 여부를 사전의 확인 없이 main request에서 확인하는 방식이다.

-- Preflighted requests
CORS 허용 여부를 main request를 보내기 전에 미리 확인하는 방식이다.

2) XSS
보안 공격 종류 중 하나로 공격자가 클라이언트에게 악성 코드를 주입하는 공격이다. 공격에 성공하면 사용자는 삽입된 악성 코드를 실행하게 되며 보안에 위협을 받게 된다.

예를들어 공격자가

<a><a href="악성링크--"></a>

이와 같은 코드를 주입했다고 가정하면 브라우저에서 html 코드를 실행하면서
악성링크도 같이 실행해 버리는 것이다. 이와 같은 XSS 공격을 예방하기 위한 대표적인 방법은 정규 표현식을 이용하여 html 코드에 있는 태그를 실행하지 않고 그대로 출력되도록 할 수 있다.

.replace(/</g, '&lt;')

3) CSRF
사용자가 원치 않는 임의의 행동을 수행하게 만드는 공격 기법이다.

예를들어 공격자가 웹 서버에 CSRF 요청 변조 코드를 삽입한다. 아무것도 모르는 사용자가 해당 사이트를 방문하면 악성 스크립트가 동작하는데 이 악성 스크립트는 사용자로 하여금 개인정보 수정이나 회원 탈퇴 등 원치 않는 임의의 행동을 수행하게 만든다. 이와 같이 사이트에 방문 하는 사용자가 정상적인 요청이 아닌 임의의 요청을 하도록 위조하는 것이 CSRF 공격이다.



오늘은 다양한 보안 정책에 대하여 공부하였다.
다음시간에는 http에 대하여 공부한다.
오늘은 여기까지~

profile
안녕하세요 유지원입니다

0개의 댓글