2012-09-27 1 views
3

TastyPie를 사용하여 작성된 RESTful API가 포함 된 장고 웹 앱이 있습니다. 사용자 이름과 api_keys를 사용하는 API에 내 모바일 앱 액세스를 허용하려고하지만 모바일 클라이언트에 api_key를 다시 가져 오는 가장 좋은 방법을 알기 위해 애 쓰고 있습니다.POST 호출시 로그인 자격 증명을 REST API에 데이터 매개 변수로 전달하는 데 보안 문제가 있습니까?

나는 자원 코드가 여기에 제공된 다음입니다 : 이것은 POST 요청 데이터 매개 변수로 사용자 이름과 암호를 전달하는 안전한 방법 인 경우 How can I login to django using tastypie

내 질문입니다. 나는 괜찮은가? 데이터 http://myapp.com/api/user/login

POST : 여기

는 POST 요청의 예입니다 { '사용자 이름': '나', '암호' 'l33t'}.

+0

보안을 가장 중요하게 생각하는 경우 SSL을 사용하여 요청을 보내는 것이 좋습니다. –

답변

4

POST 요청을 통해 전송 된 데이터는 스니핑 될 수 있지만 사용자 자격 증명을 RESTful API에 제출할 때 사용해야하는 것은 아닙니다. 직접 질문에 답변하십시오 :

  • 인증을 위해 사용자 이름과 암호를 게시하는 것은 안전하지 않습니다. 그것은 냄새 맡을 수 있습니다.
  • 이런 식으로 사용자 자격 증명을 제출하는 것은 제 경험상 매우 자주 수행되는 것입니다. 좋은 사례는 일단 기억 된 토큰 (또는 귀하의 경우 API 키)을 인증 된 사용자에게 반환하는 것입니다. 세션 유지 이외에도 일부 악의적 인 사용자가 API 키를 가져 가면 사용자 이름/비밀번호를 재설정하지 않고도 쉽게 재설정 할 수 있습니다 (어쨌든 그렇게하는 것이 좋을 수도 있음). 물론 단점은 토큰/API 키가 일반적으로 브라우저 쿠키와 같은 안전하지 않은 장소/일부 github 저장소의 소스에 실수로 저장된다는 것을 기억하는 것입니다.

따라서 인증 인증 정보를 스니핑 방지로 게시하고 있습니다. 할 수 있니? 끝났습니까, 네. 더 많은 보안이 필요한 경우이 컨텍스트에서 HTTPS가 적합한 솔루션인지 확인할 수 있습니다.

+0

감사합니다. 그것이 내가 그 사건이 될 것이라고 생각한 것이지만, 다른 의견을 원했습니다. 앞으로이 리소스를 https로 이동할 수도 있지만 현재는 현재 진행 중이므로 계속 진행할 것입니다. – bevinlorenzo

2

아니요, 일반 텍스트 자격 증명을 보내는 것이 안전하지 않습니다. 트래픽을 스니핑하고 큰 로그 파일에 트래픽을 스니핑하는 사용자는 누구나 자격 증명을 갖게됩니다.

관련 문제