Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 장고
- git
- Wil
- 코딩테스트
- web
- nginx
- JWT
- 파이썬
- 도커
- SQL
- 자료구조
- 오블완
- 연습
- 세션(Session)
- 쿠키(cookie)
- 티스토리챌린지
- redis
- CS
- 개발공부
- docker
- 아티클 스터디
- Python
- ERD
- NoSQL
- viewsets
- flask
- github
- Til
- Doker
- django
Archives
- Today
- Total
SteadyDrills
CSRF(Cross-Site Request Forgery) 토큰이란? 본문
241122
CSRF 토큰
사이트 간 요청 위조(Cross-Site Request Forgery)를 방지하기 위해서 만들어진 것이다.
또한, CSRF 토큰은 서버가 클라이언트에게 발급하는 고유한 문자열으로 사용자가 웹 애플리케이션에서 특정 요청을 보낼 때 포함되어야 하며, 서버는 이 토큰을 검증하여 요청의 진위를 확인한다.
CSRF 토큰의 특징
- 고유성: 각 사용자 세션에 대해 고유한 토큰이 생성되며, 동일한 토큰이 다른 사용자에게 사용되지 않도록 보장한다.
- 일회성: 일반적으로 CSRF 토큰은 매 요청마다 다르게 생성되며, 이것을 이용해 재사용 공격을 방지할 수 있습니다.
- 서버 측 저장: 서버는 발급한 토큰을 기억하고 있어야 하며, 요청 시 클라이언트가 보낸 토큰과 비교하여 검증한다.
CSRF 토큰과 세션 기반 인증
CSRF 토큰은 세션인증의 보안성을 높이기 위해 만들어진것으로, 사용자가 로그인하면 서버는 세션을 생성, 서버가 세션을 인식하고, 해당 세션의 CSRF 토큰과 비교하여 요청의 진위를 확인하는 과정으로 사용자를 인증한다.
CSRF 토큰과 JWT
JWT(JSON Web Token)방식의 인증은 일반적으로 JWT는 자체적으로 사용자 정보를 포함하고 있으며, 그렇기 때문에 CSRF 토큰이 불필요할 수 있다. 하지만 JWT와 세션 기반 인증을 혼합하여 사용하는 경우, JWT가 브라우저의 쿠키에 저장된다. 그렇기 때문에 CSRF 공격에 대한 위험이 존재하므로 CSRF토큰이 필요 하다.
'웹개발' 카테고리의 다른 글
도커 초기 설정 (0) | 2024.12.05 |
---|---|
세션스토어로 사용하는 Redis의 장단점 (0) | 2024.12.04 |
[DJANGO] FBV와 CBV의 차이 (0) | 2024.11.20 |
RESTful 아키텍처 (0) | 2024.11.17 |
SQLite란? (4) | 2024.11.13 |