2010-08-05 5 views
3

나는 장고 경험이없는 아이폰 개발자와 일하고 있는데, 나는 비교적 장고에 익숙하지 않다. 필자는 사용자가 로그인하여 데이터베이스의 책을 개인용 라이브러리에 추가 할 수있는 웹 인터페이스가있는 기존 Django 응용 프로그램을 만들었습니다.CSRF를 해결하기 위해 iPhone 앱에서 Django 백엔드에 대한 요청을 인증하고 요청하는 방법은 무엇입니까?

우리는 사용자가 인증하고 라이브러리에 액세스 할 수있게 해주는 iPhone 응용 프로그램을 만들려고 노력하고 있으며 인증을 수행하고 사용자의 라이브러리를 요청하는 가장 좋은 방법은 무엇인지 궁금합니다. 우리는 HTTP POST 요청을 사용하여 Django 응용 프로그램에 자격 증명을 전송하기 시작했지만 다른 Django 개발자는 이것이 Django 1.2부터는 작동하지 않는 도메인 간 요청이라고 말했습니다.

도메인 간 HTTP POST 요청을 수행 할 수없는 경우 iPhone 응용 프로그램에서 장고 응용 프로그램으로 데이터를 POST하는 방법은 무엇입니까?

+0

이것에 대해 문의 하시겠습니까? http://docs.djangoproject.com/en/dev/ref/contrib/csrf/ –

+0

예. 나는이 기사를 찾았지만, 정말로 알고 싶은 것은 아이폰 앱의 일반적인 POST 요청을 사용하여 장고 앱에 데이터를 다시 보내는 것이 '잘못'한 것인지 아닌지를 추측한다. – gohnjanotis

답변

5

그냥 csrf_exempt 데코레이터를 사용하십시오. http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#exceptions

네, POST 요청 유형을 사용하십시오. 데이터를 서버로 보낼 때 유일한 선택입니다. RESTful API 가이드 라인에 따라 : http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services

+0

로그인보기에서만이 작업을 수행하면 실제 해킹 위험이 있습니까? 이것은 명백한 빠른 수정입니다 ...하지만 CSRF는 이유가 있습니다. 그냥 그것을 사용하지 않도록 ..? Meh. –

+0

예 CSRF는 사이트 간 요청 위조를 방지하기 위해 있지만, 사용자가 API를 사용하는 사람이 무엇을 하든지간에 동일한 도메인에 있지는 않습니다. –

-1

iphone 응용 프로그램의 HTTP 요청이 도메인 간이 아닙니다.

+1

그것은 아닌가요? 아이폰 앱이 나올 도메인은 무엇이겠습니까? – gohnjanotis

1

CSRF 문제를 해결할 수 있습니다. django 1.4 함수 바로 앞에 장식을 사용합니다.

Solution: 
    @csrf_exempt 
    def PostData(requst): 
    pass