의미없는 블로그

CSRF Referer 본문

카테고리 없음

CSRF Referer

SaltLee 2025. 2. 28. 10:19

 

referer 를 검사해서 정상 출처에서 왔는지 확인한다

referer 는 클라이언트측에서 오기 때문에 조작할 수 있다

정상 referer 에서 온것 처럼 조작할 수 있다

 

사이트가 referer 검사에 의존하고 있으면 안된다

 

referer 헤더에 대한 검증을 서버단에서 하라는것?

네, 맞습니다! Referer 헤더에 대한 검증은 서버단에서 해야 합니다. 클라이언트 측에서 Referer 헤더를 신뢰하는 것은 보안상 위험할 수 있기 때문입니다. 클라이언트 측에서는 Referer 헤더조작할 수 있기 때문에, 이를 검증하는 로직을 서버에서 구현해야만 제대로 된 보안을 유지할 수 있습니다.

 

근데 해당 페이지에서 xss 취약점 포인트가 없으면

어차피 CSRF 는 불가한거 아니야?

 

맞습니다, XSS (Cross-Site Scripting) 취약점이 없는 경우, CSRF (Cross-Site Request Forgery) 공격은 사실상 발생할 수 없습니다. 그 이유를 좀 더 자세히 설명해드리겠습니다.

XSS와 CSRF의 관계

  • XSS는 공격자가 악의적인 스크립트를 웹 페이지에 삽입하여, 해당 페이지를 방문한 사용자의 브라우저에서 악의적인 코드를 실행시키는 공격입니다.
  • CSRF는 공격자가 사용자가 인증된 세션을 이용해 의도치 않은 요청을 서버로 보내도록 유도하는 공격입니다.

그러나 XSS 취약점이 없으면, 클라이언트 측에서 임의의 스크립트를 실행하는 것이 불가능하므로, 공격자가 사용자의 인증된 세션을 악용하여 CSRF 공격을 시도할 수 없습니다.

 

그럼 특정 페이지에서 xss 취약점이 없으면 굳이 그 페이지에서 referrer 헤더 조작되는지를 검사할 필요가 없잖아

 

맞습니다, 특정 페이지에서 XSS 취약점이 없다면, 해당 페이지에서 Referer 헤더를 조작할 가능성이 매우 낮습니다. 그 이유를 좀 더 구체적으로 설명해드리겠습니다.

XSS가 없다면 Referer 헤더 조작 가능성도 적다

  • CSRF 공격은 일반적으로 사용자가 인증된 상태에서 의도하지 않은 요청을 보내게 하는 공격입니다. 이때 공격자는 사용자의 세션 쿠키나 인증 정보를 이용해 서버에 요청을 보냅니다.
  • Referer 헤더는 요청을 보낸 출처(즉, 이전 페이지의 URL)를 나타내며, CSRF 방어의 일환으로 이를 검사하여 공격을 차단하려는 경우가 있습니다.
  • 그러나 XSS 취약점이 없다면, 사용자가 악의적인 스크립트에 의해 Referer 헤더를 조작하는 것이 불가능하므로, Referer 헤더가 조작되었는지 확인할 필요성도 줄어듭니다.

 

Comments