주요정보통신기반 웹 취약 분석 평가 방법 15번째 항목인 크로스사이트 리퀘스트 변조(Cross-site request Forgery/CF)다.
다들 CSRF가 익숙하니까 CSRF로 쓰겠다!
사용자(희생자)가 자신도 모르게 특정 행위를 요청하게 만드는 공격이 CSRF다.
'CSRF' 카테고리의 글 목록
ragdo11.tistory.com
당연히 다뤘었다. 바로 밑에서 보긴 하겠지만 CSRF는 POST 방식의 전송 + XSS 방어만 해도 거의 성공하기 어렵다.
보안설정방법
- 웹 사이트에 사용자 입력 값이 저장되는 페이지는 요청이 일회성이 될 수 있도록 설계
- 사용 중인 프레임워크에 기본적으로 제공되는 CSRF 보호 기능 사용
django 처럼 기본적으로 적용되는 것도 있고, flask에는 flask-WTF 패키지를 사용하는 등 CSRF 보호 기능을 사용할 수 있다.
- 사용자가 정상적인 프로세스를 통해 요청하였는지 HTTP 헤더의 Referer 검증 로직 구현
- 정상적인 요청(Request)과 비정상적인 요청(Request)를 구분할 수 있도록 Hidden Form을 사용하여 임의의 암호화된 토큰(세션 ID, Timestamp, nonce 등)을 추가하고 이 토큰을 검증하도록 설계
CSRF Token 사용
- HTML이나 자바스크립트에 해당되는 태그 사용을 사전에 제한하고, 서버 단에서 사용자 입력 값에 대한 필터링 구현
- HTML Editor 사용으로 인한 상기사항 조치 불가 시, 서버 사이드/서블릿/DAO(Data Access Object) 영역에서 조치하도록 설계
- XSS 조치 방안 참조
'주요정보통신기반 웹 취약점 분석·평가 항목' 카테고리의 다른 글
불충분한 인가(IN) (0) | 2025.05.21 |
---|---|
세션 예측(SE) (0) | 2025.05.21 |
취약한 패스워드 복구(PR) (0) | 2025.05.20 |
불충분한 인증(IA) (0) | 2025.05.20 |
약한 문자열 강도(BF) + Credential Stuffing (2) | 2025.05.20 |