CSRF
cross site request forgery의 약자로 악의적인 사이트에서 위조된 요청을 통해 공격하는 것을 뜻한다.
예를 들어 유저 A가 N 은행 사이트에 로그인해서 인증된 상태일 때, 악의적인 사이트 X에서 N 사이트에 대해 유저 A의 브라우저로 비밀번호 변경 요청을 보낸다면? 실제 유저 A의 N 사이트 비밀번호와 아이디를 얻어 X 사이트의 해커가 유저 A의 계정으로 로그인을 할 수 있게된다.
이런식으로 인증된 유저의 브라우저를 통해서 공격하는 방식이 바로 CSRF이다.
XSS
Cross-Site Scripting의 약자로 악의적인 사이트에서 강제로 스크립트 코드를 실행해서 유저의 정보를 탈취하는 공격을 뜻한다.
예를 들어 유저 A가 X 사이트에 접근했을 때 X 사이트에서 스크립트를 실행해서 A의 브라우저에 있는 쿠키나 로컬 스토리지의 정보를 읽어 JWT와 같은 인증 정보를 탈취할 수 있다.
공통점과 차이점
CSRF와 XSS는 유저의 브라우저를 통해서 공격을 한다는 공통점이 있다.
CSRF는 유저가 의도하지 않은 요청을 발생시키고, XSS는 악의적인 스크립트를 실행한다는 점에서 방식의 차이가 있다.