Django 1.7.7和python3中的会话劫持

时间:2017-12-05 17:35:15

标签: django django-views django-sessions

我开发了一个小型应用程序,用于向数据库服务器(Oracle 11g)提交一些数据。当我们审查这个小应用程序的安全性时,我们观察如下:

1. We have deployed django with https and all secure configurations like Secure Cookie and Secure Session, No Cache, etc.
2. Using BURP tool for this sample review
3. We have created two different user in this system say Normal User and Admin User
4. Opened 2 browsers(Mozilla and IE 11), On mozilla we login with Admin user and captured session id using burp tool.
5. On second browser we login with Normal user and replaced session id Normal User with Admin User.
6. whoila......On second browser, I got Admin user access by just changing the session id

我已经为此应用程序使用了默认会话后端。

我想知道这是否是django的缺陷以及如何解决这个问题。

提前致谢

1 个答案:

答案 0 :(得分:0)

这不是Django的缺陷,它是使用基于会话的识别的固有风险。它被称为会话劫持,如果你搜索该术语,你会发现很多信息。

缓解措施通常有以下两个目标之一:使得难以窃取令牌,或者如果被盗则使损害不那么严重。在前阵营中有使用HTTPS和SESSION_COOKIE_HTTPONLY等技术。后者是限制有效会话的长度(SESSION_COOKIE_AGE)。但最终,如果他们获得了他们的令牌,那么很难或不可能阻止某人冒充他人,因为这是建立身份的原因。