CSRF(Cross Site Request Forgery)
- 웹 애플리케이션 취약점 중 하나
- 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(modify, delete, register) 등 특정한 웹사이트에 request 하도록 만드는 공격 기법
- ex. SNS의 광고성 글
- 자동 로그인으로 이런 피싱 사이트에 접속하게 되면서 피해를 입는 경우가 많다.
대응 기법
- 리퍼러(Refferer) 검증
- 백엔드 단에서 Refferer 검증을 통해 승인된 도메인으로 요청시에만 처리하도록 한다.
- request header 안에 있는 데이터를 가져와서 referer 값 확인
String referer = request.getHeader("Referer");
- Security Token 사용
- 사용자의 세션에 임의의 난수 값을 저장하고, 사용자의 요청시 해당 값을 포함하여 전송시킨다.
- 백엔드 단에서는 요청을 받을 때 세션에 저장된 토큰 값과 요청 파라미터로 전달받는 토큰 값이 일치하는지 검증 과정을 거치는 방법
XSS(Cross Site Scription)
- 웹 애플리케이션 취약점 중 하나
- 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법
- 악의적으로 스크립트를 삽입해서 이를 열람한 사용자의 쿠키가 해커에게 전송시키며, 쿠키를 통해 세션 하이재킹 공격을 한다.
- 해커는 세션 ID를 가진 쿠키로 사용자의 계정에 로그인
대응 기법
- 입출력 값 검증 : XSS 필터링 적용 후 스크립트 실행되는지 테스트
- XSS 방어 라이브러리, 확장앱 : 서버단에서 방어 라이브러리 추가 또는 사용자들이 확장앱 설치
- 웹 방화벽 : 다양한 injection 방어 가능
- CORS, SOP 설정
- CORS(Cross-Origin Resource Sharing), SOP(Same-Origin-Policy)를 통해 리소스의 Source를 제한하는 것
- 사전에 지정된 도메인이나 범위가 아니면, 리소스를 가져올 수 없게 제한한다.
'ETC > 이론 정리' 카테고리의 다른 글
[Github] Github Action 깃헙 액션 (0) | 2023.07.16 |
---|---|
[WEB] HTTP - Method, Request, Response, Status Code과 Socket 통신 차이점 (0) | 2022.10.07 |
[WEB] 인증 방식 - OAuth(Open Authorization), JWT(Json Web Token) (0) | 2022.10.06 |
[Kafka] 아파치 카프카란? Apache Kafka (0) | 2022.10.01 |
[WEB] 쿠키(Cooke)와 세션(Session) (0) | 2022.10.01 |