작성
·
260
0
강의 7분 6초 즈음에 말씀하신 "https://shop.com/address=공격자주소에 대해서는 csrf 토큰 값이 없습니다" 라는 설명이 잘 이해가 되지 않습니다. csrf 토큰은 처음 요청 때 서버로부터 이미 받은 거 아닌가요?
공격자는 나의 csrf 토큰을 모른다고 하셨는데, 어차피 저 링크를 클릭해서 서버로 요청을 보내는 것도 저 아닌가여? 아니면 저런 식으로 요청을 보낼 때 header에 csrf 토큰을 담게끔 코드가 구현되지 않았기 때문에 csrf 토큰이 안 담긴 채로 서버로 보내진다는 뜻인지요...
답변 1
1
네
링크를 클릭한다는 의미는 사용자로 하여금 공격자가 유인한 사이트에서 실행한다는 의미입니다.
즉 공격자는 사용자가 이용하는 서비스의 URL 값을 자신이 만든 사이트에 심어 놓고 사용자를 유인한다음 링크를 클릭하게 해서 실제 사용자의 서비스에 접속이 되도록 한다는 의미입니다.
사용자는 이미 로그인이 되어 있기 때문에 세션 쿠키가 만들어진 상태이고 공격자가 심어 놓은 URL 의 액션을 실행한다고 해도 사용자의 서비스 시스템은 정상적인 사용자의 액션이라고 판단하게 됩니다.
그런데 사용자의 서비스 시스템이 해당 액션에 대해 csrf 토큰값을 요구할 경우 공격자의 사이트에는 사용자 서비스에서 사용자에게 발행한 csrf 토큰값을 알수가 없기 때문에 접근이 거부 됩니다.