-
CSRF(Cross Site Request Forgery)연습장 2024. 8. 20. 20:44
웹 애플리케이션의 취약점을 이용해 사용자가 의도하지 않은 요청을 보내도록 하는 공격 기법
사용자의 인증된 상태를 악용하여 사용자가 원하지 않는 행동을 수행하게 함.
예시 상황
1. 사용자가 로그인
2. 세션 유지 - jwt 상황 ㄴㄴ. 세션 쿠키가 브라우저에 저장
3. 사용자가 악성 웹 사이트 방문 - 웹 사이트가 csrf 공격 코드를 포함
4. 악의적인 요청 전송 - 사용자의 세션 쿠키를 이용해 원래 웹 애플리케이션으로 요청을 보냄
5. 원래의 웹 애플리케이션 서버는 정상적인 사용자로 인식해 처리
방지방법
Referer헤더 검증
이것을 이용하여 요청이 신뢰할 수 있는 출처에서 온 것인지 확인할 수 있으나, Referer헤더는 사용자가 조작할 수 있고, 일부 브라우저에서는 이 헤더를 포함하지 않을 수 있음.
csrf토큰 사용
가장 일반적인 방지 방법. 서버는 각 요청에 대해서 고유한 토큰을 생성하고, 이를 html 폼에 포함시킴
서버는 폼에 요청이 들어올 때 토큰을 검증... -> 실습을 통해 확인
form대신 api 사용
rest api를 통해 json 데이터로 통신하면 해당 이슈 피할 수 있음. json토큰이 있어야 하기 때문...?
'연습장' 카테고리의 다른 글
장애 대응 1 - 모니터링 (0) 2024.08.21 XSS(Cross Site Scripting) (0) 2024.08.20 모니터링 (0) 2024.08.20 RabbitMQ (0) 2024.08.19 모니터링과 로깅, 테스트와 배포 (0) 2024.08.17