jwj3400
[backend] XSS(Cross Site Scripting) & CSRF (Cross-Site Request Forgery) 본문
코딩/web
[backend] XSS(Cross Site Scripting) & CSRF (Cross-Site Request Forgery)
jwj3400 2023. 10. 6. 16:38- XSS
- 공격대상이 Client
- 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법
- Stored XSS: 사용자가 게시물을 열람시 공격자가 입력해 놓은 악성 스크립트가 실행되어 사용자의 정보 유출, 스크립트 코드가 서버내에 저장됨
- Reflected XSS: 공격자가 HTTP 요청에 악성 콘텐츠를 주입하면 그 결과 사용자에게 반사되는 형태, 사용자가 악성 스크립트 url을 클릭하도록 유도
- 공격자의 서버로 쿠키에 저장된 세션 토큰을 전송하는 식으로 <사용자의 정보탈취>를 목적으로함
- CSRF
- CSRF란 명시적인 동의 없이 사용자를 대신하여 웹 어플리케이션에 악의적인 행동을 취하는 공격
- 쿠키와 세션을 이용한 로그인 순서
- 로그인 하면 세션 아이디를 서버에서 생성하고, 세션 아이디를 클라이언트 set-Cookie 헤더에 담아서 저장 (클라이언트 쿠기에 세션 아이디가 저장됨)
- 클라이언트가 서버로 요청 시 세션 아이디를 자동으로 전달하며 세션 아이디를 통해 인증된 사용자인지 서버에서 확인(브라우저는 요청을 보낼 때마다 쿠키를 함께 전달)
- CSRF 공격 과정
- 사용자 브라우저에 세션 아이디 쿠키가 존재
- 악성 스크립트 페이지를 클릭
- 악성 페이지 접근 시 악성 페이지에 있는 요청을 서버로 전송
- 서버는 세션 아이디가 있기에 요청 처리
- CSRF는 공격자가 의도한 행위를 웹사이트에 요청함
- CSRF 조건
- 위조요청을 전송하는 서비스에 사용자가 로그인
- 사용자는 공격자가 만든 사이트에 접속
- XSS와 CSRF 차이
XSS는 정보탈취가 목적이라면, CSRF는 권한도용이 목적
XSS는 사용자가 특정 웹사이트를 신용하는 점을 노리고 CSRF는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 것을 노림
'코딩 > web' 카테고리의 다른 글
[Frontend] LocalStorage & SessionStorage & Cookie (0) | 2023.10.08 |
---|---|
[Frontend/Backend] 세션/쿠키 & JWT (0) | 2023.10.07 |
[backend] CORS (Cross-Origin Resource Shari) (0) | 2023.08.25 |
[Front] React Router (0) | 2023.08.23 |
[Front] CSS Margin, borader, padding 차이 (0) | 2023.08.22 |