Browser Security (XSS / CSRF / CORS) 21.05.03


Browser Security

XSS : 클라이언트가 서버로 부터 받아온 데이터를 신뢰하기 때문에 발생하는 이슈

과정 : fetch(서버에 데이터 요청) => 서버가 데이터 응답 => 받은 데이터 DOM 반영

이 과정 중 해커가 데이터에 악성 코드를 string 형식으로 첨부해서 보낼 경우 클라이언트가 DOM에 이 데이터를 반영 시 악성 코드가 페이지 내에 존재하게 된다.

방지 방법 : 1.정규 표현식 사용 <> 태그 기호를 다른 문자로 대체하여 코드가 아닌 문자열로 처리. (요즘 브라우저에서는 기본적인 XSS 공격을 막는다.)

CSRF : 서버가 클라이언트를 신뢰해서 발생하는 이슈

서버는 인증정보를 가지고 클라이언트의 요청을 판단한다. 사용자(클라이언트)가 인증 정보를 가진 체로 해커의 링크를 누르게 되면 해커는 인증 정보를 가로채서 서버에 요청을 보낸다. 이 경우 서버는 해커가 아닌 사용자가 요청을 보낸 줄 알고 해커에게 응답한다.

CORS : Origin 간의 리소스 공유

SOP(Single Origin Policy) 원칙을 깨고 외부 도메인에서의 요청(접근)을 허용해주는 규약. 특정 도메인에서 접근하는 것이 가능하도록 해준다.

처음 전송되는 리소스의 도메인과 다른 도메인으로부터 리소스가 요청될 경우 해당 리소스는 CORS HTTP 요청에 의해 요청.

한 리소스에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 시스템.

웹 애플리케이션은 리소스가 자신의 리소스(도메인, 프로토콜, 포트)와 다를 때 CORS HTTP 요청을 실행합니다.




© 2020.11. by creamer

Powered by CREAMer