Spring <CSRF>
사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다.
유명 경매 사이트인 옥션에서 발생한 개인정보 유출 사건에서 사용된 공격 방식 중 하나다.
사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.
- 위키 백과사전 -
특정 다른 웹사이트에서 공격하는 위조를 막기위해서 서버에서 직접 발급한 화면에서만 요청을 받을 수 있도록 방법을 제시한다. (설정 방법 생략)
CSRF 는 Security에서 기본적인 설정만 하면 csrf 토큰을 세션에 저장하며 PATCH, POST, PUT, DELETE Method 요청시 View 화면에서 csrf에 의해 발급된 key와 세션에 저장된 값을 비교하여 확인한다.
세션을 사용 안한다면 CookieRepository를 사용하여 쿠키에 저장하여 비교하는 등 다양하게 Custom 하게 사용할 수 있다.
<Referer>
기본적인 Referer Policy 는 no-referer-when-downgrade이며
리다이렉트의 경우에는 referer 헤더에 포함하지 않는다.
Referer 리퍼러란 ?
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Referrer-Policy
댓글