[CS] CSRF (Cross-site request forgery)

해니·2023년 10월 4일
0

CS

목록 보기
9/15
post-thumbnail

CSRF 공격이란?

  • 웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 만드는 공격

XSS 공격과 차이점 🧐
XSS와 CSRF는 둘 다 스크립트 공격이다. XSS는 사용자(희생자)의 PC에서 스크립트가 실행되지만, CSRF는 서버에서 스크립트가 실행된다.



CSRF 공격 방법

  1. 공격자가 이메일이나 게시판에 CSRF 스크립트가 포함된 게시물을 전송한다.
    예) img 태그(get 방식)나 form 태그(post 방식)에 공격자의 의도가 담긴 Parameter를 담아 공격할 서버에 전송하도록한다.

  2. 사용자가 공격자가 등록한 CSRF 스크립트가 포함된 게시물을 확인한다.

  3. 사용자가 CSRF 스크립트가 포함된 게시물을 열람하면, 공격자가 원하는 CSRF 스크립트 요청이 발생한다.

  4. 공격자가 원하는 CSRF 스크립트가 실행되어, 관리자 및 사용자의 피해가 발생

img 태그와 link 태그는 CORS가 적용되는 대표적 태그다.



CSRF 방어 기법

  • Referer 체크
    • HTTP 헤더에 있는 Referer로 해당 요청이 요청된 페이지의 정보를 확인한다.
  • GET / POST 요청 구분
    • img 태그 등의 경우 GET 요청으로, form 태그로 값을 받을 경우 POST를 이용하여 요청을 구분해준다.
  • Token 사용
    • 서버에서 hash로 암호화 된 token을 발급, 사용자는 매 요청마다 token을 함께 보내어 서버의 검증을 거쳐야한다.
  • 추가 인증 수단 사용 ( ex. CAPCHA )
    • 추가 인증 수단을 거쳐 만약 테스트를 통과하지 못할 시, 해당 요청 자체를 거부한다.







출처
CSRF 공격과 방어 기법
XSS와 CSRF 차이점 설명과 사용자가 공격 예방하는 방법

profile
💻 ⚾️ 🐻

0개의 댓글