使用安全连接登录Django Web服务

时间:2014-01-13 10:53:00

标签: ios django web-services security password-protection

我写了一个简单的Django Web服务,它为iOS应用程序提供包含下载链接的JSON信息。 我不介意JSON信息是明文,但是当用户登录时,我希望他用他的用户名和密码登录,然后他可能会得到某种关键用于将来的请求,我明白这可以是嗤之以鼻。对于第一次互动,我怎样才能保护密码和用户名不被明文和嗅探?

我已经决定使用对称加密来加密我的密码,并在客户端和服务器上都有该密钥。 (是的,我知道如果有人遇到二进制黑客攻击我的应用程序和从客户嗅探数据包的问题,​​他将能够以明文形式获取密码,这不是一个可能的问题。)

我想使用某种加密方式,我可以在iOS中轻松完成,而不是在我的django服务器中解密。有人建议如何做到这一点吗?

2 个答案:

答案 0 :(得分:0)

如果要加密django服务器和客户端之间的通信,则可以使用安全HTTP而不是普通的旧HTTP。这是在django外部完成的,并在Web服务器级别配置。例如,如果您的django应用程序由诸如gunicorn或uWSGI之类的WSGI服务器运行,而后者由nginx处理(这是常见设置),那么您将配置您的nginx服务器以仅接受安全HTTP请求并转发任何标准http请求到https。这样,您可以确保在发送之前,客户端发送到服务器的所有内容都在浏览器上加密。类似的设置是用Apache完成的,虽然我个人从未使用过django的Apache。

答案 1 :(得分:0)

由于OP认为HTTPS不是一个可行的选项,因此可以选择修改初始密钥的CHAP Challenge-Handshake Authentication Protocol