개념
공격자가 삽입한 스크립트를 다른 사용자가 자신의 의지와 무관하게 실행해 공격자가 의도한 행위를 서버에 요청하는 취약점입니다.
발생 원인
사용자 입력 값에 대한 적절한 필터링 및 유효성 검증을 하지 않아 발생하는 취약점입니다.
위험한 이유
타 사용자의 권한으로 악의적인 공격을 수행해 해당 사용자가 피해를 입을 수 있습니다.
조치 방법
- 웹 사이트에 사용자 입력 값이 저장되는 페이지는 요청이 일회성이 될 수 있도록 설계합니다
- 사용 중인 프레임워크에 기본적으로 제공되는 CSRF 보호 기능을 사용합니다.
- 사용자가 정상적인 프로세스를 통해 요청하였는지 HTTP 헤더의 Referer 검증 로직을 구현합니다.
- 정상적인 요청(Request)와 비정상적인 요청(Request)를 구분할 수 있도록 Hidden Form을 사용하여 임의의 암호화된 토큰을 추가하고 이 토큰을 검증하도록 설계합니다.
- HTML이나 자바스크립트에 해당되는 태그 사용을 사전에 제한하고, 서버 단에서 사용자 입력 값에 대한 필터링을 구현합니다.
- HTML Editor 사용으로 인한 상기사항 조치 불가 시, 서버 사이드/서블릿/DAO 영역에서 조치하도록 설계합니다.
추가 정보
- 서블릿: JAVA 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말합니다.
- DAO: DB에 접속하여 데이터를 조회/수정을 하는 기능을 전담하도록 만든 객체입니다.
'주요정보통신기반 시설 가이드' 카테고리의 다른 글
불충분한 인가란? (0) | 2024.03.20 |
---|---|
세션 예측이란? (0) | 2024.03.19 |
취약한 패스워드 복구란? (0) | 2024.03.17 |
불충분한 인증이란? (0) | 2024.03.17 |
약한 문자열 강도란? (0) | 2024.03.17 |