2016-07-26 2 views
0

인증 된 사용자와 인증되지 않은 사용자 모두 CSRF 토큰 Django가 자동으로 생성되는지 궁금합니다. 모든 사용자 - 인증 또는 인증되지 않은 사용자가 API 끝점에 대한 후속 호출을 할 수 있도록 양식 데이터를 게시하기위한 API를 만들고 싶기 때문에 궁금합니다. 그러나 CSRF 토큰을 각 사용자의 헤더에 "첨부"해야하는지 궁금합니다. (인증되지 않은 사용자도 CSRF 토큰을 가짐을 의미 함)Django - 인증 된 사용자와 인증되지 않은 사용자를위한 CSRF 토큰?

답변

0

Django의 기본 인증 메커니즘을 사용하려면 인증 된 사용자와 인증되지 않은 사용자 모두 유효한 CSRF 토큰이 필요합니다. 사용자가 로그인하면 토큰이 회전됩니다.

토큰이 필요한지 여부는 사용자가 인증되었는지 여부에 크게 의존하지 않지만 인증 메커니즘에 따라 다릅니다. 인증이 세션/쿠키를 사용하여 사용자를 인증하는 경우 공격자는 각 요청에 대해 암시 적으로 보내는 세션 정보를 사용하여 요청을 위조하고 희생자가 수행 할 수있는 일부 작업을 수행 할 수 있습니다. 반면에, 예를 들어 토큰 인증은 각 요청과 함께 토큰을 명시 적으로 보내야하며 공격자는 토큰을 알거나 토큰을 사용하는 요청을 위조 할 수 없습니다.

+0

감사합니다. 사람이 로그인하지 않았을 때 csrf 토큰이 필요한 이유는 아직도 혼란 스럽습니다 (쿠키가 없습니다). 사람이 로그인하지 않은 경우 대부분의 작업이 "안전"하지 않습니까? – BudaeJjigae

관련 문제