2012-11-21 5 views
11

여기에서해야 할 일을 이해하려고합니다 ... iOS에서 내 장고 서버에 POST 호출을하고 403 오류 (잘못된 CSRF 토큰)가 계속 표시됩니다. 나에게 토큰을 반환 할 함수를 구현하려고 생각하고있다. (이 함수에 액세스하려면 로그인해야한다.) 그런 다음 토큰을 POST 호출에 추가해야한다.Django 및 iOS의 CSRF 토큰

지금 ... 나는 그 일의 요점을 이해하지 못합니까? TastyPie를 사용하고 필요한 로그인이 APIKey라면 ... csrf 검사를 면제해야합니까?

사용자가 세션별로 CSRF가 생성되는지 확인하려면 어떻게해야합니까? 따라서 쿠키를 사용하지 않으면 CSRF가 필요하지 않습니다.

사람들이 대개 iOS에서 장고 서버를 사용하고 POST 호출을하는 방법은 무엇입니까?

감사합니다.

답변

2

당신이 맞다면, CSRF는 브라우저의 데이터 변조로부터 사용자를 보호하는 것이기 때문에이 경우별로 의미가 없습니다.

나는 Tastypie가 기본적으로 CSRF를보기에서 비활성화합니다.

11

맞아요 : 쿠키를 사용하여 세션을 관리하지 않으면 CSRF 보호가 필요하지 않습니다. CSRF는 세션 쿠키가 자동으로 요청에 첨부되기 때문에 작동합니다. 액세스 토큰은 그렇지 않습니다.

개인적으로는 this article 매우 유용합니다. 그것은 확실히 읽을 가치가 있으며 아마도 많은 질문에 대답 할 것입니다.

tastypie의 경우 : SessionAuthentication이 허용됩니다. tastypie에서 세션 인증을 허용하는 경우 사용자를 CSRF로부터 보호하는 방법을 찾아 보는 것이 좋습니다. 다른 인증 방식의 경우에는 이것이 필요하지 않습니다. 내가 아는 한, Dmitry는 tastypie가 CSRF를 기본적으로 사용 불가능하게 설정하는 것에 대해 옳았습니다. 이는 403 오류가 발생한다는 것이 이상하다는 것을 의미합니다. 아마도 다른 일이있을 것입니다. @csrf_exempt에서보기를 래핑 해보십시오.

CSRF 토큰에 대해서는 세션 독립 nonces이라고도합니다. 쿠키는 영구적으로 사용하기위한 것이지만 쿠키는 불가능하다는 것을 알고있을 것입니다. 어쨌든 이것은 CSRF 쿠키가 세션을 통해 지속됨을 의미합니다.