2014-01-13 4 views
0

다운로드 링크가 포함 된 JSON 정보가있는 iOS 앱을 제공하는 간단한 Django 웹 서비스를 작성했습니다. 일반 텍스트로 JSON 정보를 신경 쓰지는 않지만 사용자가 로그인 할 때 사용자 이름과 암호로 로그인하길 원한다면 나중에 이해할 수있는 열쇠를 얻을 수 있습니다. 킁킁 거리다. 첫 번째 상호 작용의 경우 어떻게 암호와 사용자 이름을 일반 텍스트에서 보호하고 스니핑을 할 수 있습니까?보안 연결을 사용하여 Django 웹 서비스에 로그인

대칭 암호화를 사용하여 암호를 암호화하고 클라이언트와 서버 모두에서 해당 키를 사용하기로 결정했습니다. (네, 바이너리가 내 앱을 해킹하고 고객의 패킷을 스니핑하는 문제로 간다면 패스워드를 일반 텍스트로 얻을 수 있다는 것을 알고 있습니다.)

나는 iOS에서 쉽게 할 수 있고 내 장고 서버에서 해독 할 수있는 일종의 암호화를 사용하고 싶습니다. 누구든지 그렇게하는 방법에 대한 제안이 있습니까?

답변

0

django 서버와 클라이언트 사이의 통신을 암호화하려면 평범한 이전 HTTP가 아닌 보안 HTTP를 사용할 수 있습니다. 이는 장고 외부에서 수행되며 웹 서버 수준에서 구성됩니다. 예를 들어, django 앱이 gunicorn이나 uWSGI와 같은 WSGI 서버에 의해 실행되는 경우 nginx (이는 일반적인 설정)에 의해 처리되며, 보안 HTTP 요청 만 받아들이고 모든 표준 HTTP 요청을 전달하도록 nginx 서버를 구성합니다 ~ https. 이렇게하면 클라이언트가 서버에 보내는 모든 것을 브라우저에서 암호화하여 전송할 수 있습니다. 개인적으로 django로 Apache를 사용 해본 적은 없지만 비슷한 설정이 Apache에서 수행됩니다.

+0

나는 Gunicorn과 nginx +를 SSL을 구입하고 호스트 지원을 위해 생각한다. 내 웹 서비스는 완전히 개방되어있다. 그 위험은 크지 않다. 패스워드 일반 텍스트를 보내는 것은 나쁜 습관이다. 특히 내 사용자가 다른 비밀번호와 동일한 비밀번호를 사용하는 경우 –

+0

다른 실행 가능한 옵션이 표시되지 않습니다. 클라이언트 측에서 추가 할 암호화는 모방 할 사람에게 보입니다. SSL 이외의 다른 솔루션에 대해서 알고 있지 않습니다. 그 GoDaddy가 6 $에 대한 SSL 인증서를 판매하는 것을 보았습니다. 그들은 아마 빨리 검증되지는 않을 것이지만, 당신의 단순한 요구에 충분할 것입니다. – elynch

관련 문제