[Codecamp-Week6] Token, XSS, CSRF

·2022년 8월 26일
0

배우는 내용 중 하나의 큰 산이였던 로그인, 회원가입, 권한 분기가 끝났다!

큰 산을 넘은 기념(?)으로 Token의 한 종류인 JWT와 XSS, CSRF에 대해 살펴보자

1. JWT

JWT는 유저를 인증하고 식별하기 위한 토큰 기반 인증이다.
토큰은 세션과 달리 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다.
JWT는 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다.
또한 토큰을 클라이언트에 저장하고 요청 시 단순히 HTTP 헤더에 토큰을 첨부하는 것만으로도 단순하게 데이터를 요청하고 응답을 받아올 수 있어 Restful과 같은 환경에서 사용자 데이터를 주고 받을 수 있다.

(1) 클라이언트 사용자가 아이디, 패스워드를 통해 웹서비스 인증

(2) 서버에서 서명된 JWT를 생성하여 클라이언트에 전달

(3) 클라이언트가 서버에 데이터를 추가적으로 요구할 때 JWT를 HTTP header에 첨부

(4) 서버에서 클라이언트로부터 받은 JWT 검증

토큰 하나로 사용자 인증이 가능하므로 해당 토큰을 탈취한다면 해커는 다양한 공격을 할 수 있을 것이다. 해커가 할 수 있는 공격 중 XSS, CSRF가 있다.

2. XSS (Cross Site Scripting)

크로스 사이트 스크립팅은 공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조, 악의적 콘텐츠를 삽입, 피싱 공격을 진행하는 것을 말한다.
XSS 공격 방식으로는 Cookie Sniffing, 스크립트 암호화 및 우회, 악성 스크립트 유포, Key Logger, Mouse Sniffer, 거짓 정보 추가 등이 있다.

기존 세션 스토리지에 토큰을 저장하는 방식에서 JWT 방식으로 바뀌면서 XSS 공격을 받을 가능성이 낮아졌다.

3. CSRF (Cross Site Request Forgery)

CSRF는 사용자가 로그인한 응용 프로그램에서 원하지 않는 작업을 실행하도록 웹 브라우저를 속이는 공격 벡터이다.
CSRF로 인해 무단 자금 송금, 비밀번호 변경 및 데이터 도난 등이 발생할 수 있다.
CSRF는 일반적으로 피해자가 서버에 위조된 요청을 보내도록 속이는 이메일이나 링크와 같은 악의적인 소셜 엔지니어링을 사용하여 수행된다.

< 참조 : https://pronist.dev/143
https://nordvpn.com/ko/blog/xss-attack/
https://www.imperva.com/learn/application-security/csrf-cross-site-request-forgery/ >

profile
개발을 개발새발 열심히➰🐶

0개의 댓글