2013-05-20 49 views
2

我试图保护我的Django restful api。使用httplib的做出自己的请求保护我的Django REST API(基本认证或其他)

  • 我的Django的前端应用(我的服务器上Ajax请求)
  • Python应用程序

现在我使用:
我有两个客户端HTTP基本认证允许客户端使用资源。 管理cookie会话的auth方法的基本用户名/密码。 在生产中,我确保我的API只能通过https访问。

我试图实现HMAC构造(因为我不想把密码放在电线上,但我必须在两端存储密码)。这适用于我的其他Python应用程序,但与我的Django前端应用程序无关,因为任何用户都可以看到JavaScript代码。

我试图实现其他身份验证方法,因为我不想真正维护会话状态(不是真正的REST)。

curl -H "PERSONAL_SECRET_API_KEY: TokenKeyxxxxxxxxxx" https://localhost:8000/api/resource/ 

这里我的问题:

  • 哪些基本认证系统的弱点是什么?
  • 是否有另一种方法适合我的目的?

谢谢

+0

我建议你看看http://django-rest-framework.org/提供了很多很棒的认证选项,并可以帮助你专注于你的应用的其他部分。 – stormlifter

回答

0
  1. 作为易反复发作是在我看来,基本验证的最大弱点。
  2. 您是否考虑过公钥/私钥基础设施?客户端应用程序创建公钥/私钥对。公钥存储在服务器上。客户端应用程序使用私钥加密其请求,服务器可以使用客户端应用程序的公钥对其进行解密,并以相同的方式发送响应。
+0

1.如果我使用CSRF令牌,我受到重播攻击保护? 2.'客户端应用程序使用私钥加密它的请求'<我无法在javascript端执行此操作而没有显示我的私钥?我错了吗 ? –

+0

1.如果有人伪造CSRF令牌并捕获用户名和密码,那么您仍然易受攻击。你说得对。在这种情况下,它不会工作。 –