패스잇
보안 · 기초

CSRF(Cross-Site Request Forgery) 공격이란 무엇이며, 방어 방법을 설명해주세요.

힌트 · CSRF 토큰, SameSite 쿠키 속성, Referer 검증 방법을 설명해보세요.

CSRF 토큰Origin 헤더SameSite 쿠키Double Submit CookieReferer 검증

모범답안

CSRF는 "Cross-Site Request Forgery"의 약자로, 웹사이트가 사용자의 의도와 다르게 악성 요청을 보내도록 속이는 공격입니다. 공격자는 사용자가 신뢰하는 웹사이트를 통해 사용자의 권한으로 특정 작업을 수행합니다.

CSRF 방어 방법으로는 다음과 같은 것들이 있습니다.

  • CSRF 토큰 사용: 서버에서 생성한 예측 불가능한 토큰을 폼에 포함시켜 요청을 보낼 때마다 검증합니다.
  • SameSite 쿠키 속성 설정: SameSite 속성을 Strict 또는 Lax로 설정하여 다른 사이트에서 쿠키가 전송되는 것을 제한합니다.
  • Referer 검증: 요청의 Referer 헤더를 확인하여 요청이 예상된 도메인에서 왔는지 확인합니다. 하지만 Referer 헤더는 위조될 수 있으므로 완벽한 방법은 아닙니다.
  • Double Submit Cookie: CSRF 토큰을 쿠키와 요청 파라미터 모두에 포함시켜 서버에서 두 값을 비교하여 검증합니다.
  • Origin 헤더 검증: Origin 헤더를 확인하여 요청이 예상된 도메인에서 왔는지 확인합니다. Referer 헤더보다 더 안전하지만, 모든 브라우저에서 지원하지 않을 수 있습니다.

이러한 방법들을 조합하여 사용하는 것이 CSRF 공격을 효과적으로 방어하는 데 도움이 됩니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 웹 보안 면접 질문

← 웹 보안 면접 질문 전체 보기