This repository has been archived by the owner on Nov 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
D.1. CSRF 방어: Flask WTF을 이용한 CSRF 공격 조치
HOIWOONG JUNG edited this page Apr 3, 2021
·
13 revisions
- 기본틀 작성하기
- flask wtf 설치
- 의존성 패키지 기록
- flask config 시큐리티 설정
- flask wtf 이니셜라이즈
- flask form 틀 만들기
- login, register, logout 엔드포인트작성
- login.html
- register.html
- csrf_token 노출 시켜보기
- form 노출 시켜보기
CSRF (Cross Site Request Forgery)의 약자로, 사이트간 요청 위조를 뜻합니다.
희생자의 의지와 무관하게 공격자가 의도한 작업이 진행 되게끔 유도하는 해킹방법입니다.
# 클릭하면 100만원 이라는 버튼이였는데...!
<form action="http://웹사이트.com/api/user" method="put">
<input type="hidden" name="password" value="123456" />
<input type="submit" value="클릭하면 100만원"/>
</form>
- 공격자는 공격용 Web 페이지를 준비하고 사용자가 액세스하도록 유도한다.
- 사용자가 공격용 Web 페이지에 액세스하면, 미리 준비되어 있던 잘못된 요청이 공격 대상 서버에 보내진다.
- 공격 대상 서버의 Web 응용 프로그램은 잘못된 요청을 처리하고 사용자가 의도하지 않은 처리를 진행한다.
CSRF방어가 필요한 요청(=쓰기/변경이 가능한 엔드포인트 및 메서드들) 마다 특정 토큰을 포함시켜서 요청하여, 서버에서 비교하는 방식
- https://flask-wtf.readthedocs.io/en/stable/csrf.html
- https://flask-wtf.readthedocs.io/en/stable/form.html#module-flask_wtf
- https://flask-wtf.readthedocs.io/en/stable/config.html
Fastcampus 2021 ,by hidekuma