입력 값 검증을 위해 제한이 필요한 태그, 특수문자는 이스케이프 처리
Cookie는 httponly, Secure 옵션을 사용
사용자의 권한을 이용해 악의적인 웹사이트를 통해 악의적 동작을 수행하도록 함
1. CSRF 토큰 사용
사용자 세션에 임의 난수를 생성해 저장. 사용자 요청 있을 때 마다 난수 포함해 전송. 이후 백엔드에서 세션에 저장된 난수와 요청의 난수가 일치하는지 검증. 하지만 토큰도 탈취됐을 경우 위험하다.
2. Cookie 설정 시 SameSite 옵션을 Strict, Lax로 사용
3. Referrer 검증
백엔드에서 Request의 HTTP 헤더의 Referer 을 통해 검증.(domain이 일치하는지)
참고사이트
https://velog.io/@minjae-mj/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B3%B4%EC%95%88-%EA%B3%B5%EA%B2%A9-XSS-CSRF
https://yeo-computerclass.tistory.com/528#google_vignette