CSRF 대응방법 & XSS와 차이

황인환·2024년 7월 13일

CSRF 대응방법

- 인증정보 추가

-> 공격자가 예측할수 없는 인증정보를 요청할때 같이보냄 ex) 옛날 비밀번호

- CSRF-TOKEN

-> CSRF를 방지하기위해 임의의 토큰을 발행후 클라이언트 세션등에 저장
-> 요청할때 CSRF-TOKEN 같이보냄
-> 서버는 서버에 저장된 CSRF-TOKEN이랑 요청할때 보내는 CSRF-TOKEN과 비교후 같으면 요청처리 다르면 요청 거부

- Referer Check

1. HTTP referer란?

-> 클라이언트가 요청을 보낼때 그 요청이 발생한 웹사이트 URL을 포함하는 헤더
-> 요청이 어디서 왔는지 확인가능

2. Referer Check

-> 요청이 올바른 출처에서 왔는지 확인하기 위해 HTTP referer를 사용하여 확인
-> 올바른 출처란-> 웹어플리케이션이 허용한 도메인 또는 경로

3. 우회법

Referer Check 우회법
우회법<meta name="referer" content="no-referer"> - 요청할때 header에 referer 없앰
가능한 원리보통 서비스의 편의를 위해 error가 발생하면 통과시킴
적용이 안된다면referer check를 재대로 구현한다면 사실상 우회불가능

XSS와 CSRF 간단비교

XSSCSRF
정의클라이언트 측에서 실행하는 스크립트를 삽입해서 공격피해자가 원하지 않지만 공격자가 원하는 어떤 요청을 보내게 만드는 공격
공격방향클라이언트 측클라이언트 측

CSRF 정리

- GET 방식

-> URL로 파라미터를 전달 ex) URL?pw=123

- POST 방식

-> 웹요청을 <body>에 넣어서 보냄
--> 보내는 방법 Javascript, <form> 사용
---> XSS 도움이 필요

- 판단

-> CSRF는 서버로 보내는 모든 요청에 발생할 수 있음
-> 모든것에 다 CSRF 방지는 무리
-> 컨설턴트의 개인의 주관이 들어감 ex) 게시판 글쓰기 누구는 위험 누구는 안전

Normaltic Study 13주차

0개의 댓글