将django会话限制为IP和/或用户代理。
django-restricted-sessions的Python项目详细描述
将django会话限制为IP和/或用户代理。
如果IP或用户代理在创建会话后发生更改,则会对请求作出400响应,会话将 刷新(删除所有会话数据,创建新会话)并记录警告。这个中间件的目标是 使攻击者更难使用他们获得的会话ID。它不会使滥用会话id成为可能。
为了与IPv6隐私扩展兼容,默认情况下只检查IPv6地址的前64位。
快速启动
安装django受限会话:
pip install django-restricted-sessions
然后在sessionmiddleware:
MIDDLEWARE_CLASSES = [ .... 'django.contrib.sessions.middleware.SessionMiddleware', # 'django.contrib.auth.middleware.AuthenticationMiddleware', 'restrictedsessions.middleware.RestrictedSessionsMiddleware', .... ]
启用RESTRICTEDSESSIONS_AUTHED_ONLY设置时,请确保在 AuthenticationMiddleware使request.user存在。
历史记录
0.2.0(2017-04-06)
-
对于Django 1.10 +支持,从
- 为django版本和更多python版本添加了pypi trove分类器
- 更新了travis.yml以获取更多python版本
0.1.4(2016-07-02)
- 修复了包含非utf8字节时可能出现的异常 在用户代理字符串中。
0.1.3.1(2016-05-26)
- 版本bump以避免pypi的重复文件名禁令。
0.1.3(2016-05-26)
- 添加了重定向到已知视图或使用自定义状态代码设置的支持。
- 添加了对忽略未经身份验证会话的支持。
- 修复了远程地址未知时的短路问题。
- 不再支持旧的python版本:现在需要2.7、3.3或更高版本, 与django 1.8。
0.1.2(2014-03-20)
- 解决了会话从IPv4切换到IPv6时引发的异常
- python 3.4支持
0.1.1(2014-02-18)
- 向setup.py添加了缺少的netaddr要求。
0.1.0(2014-02-17)
- pypi上的第一个版本。