限制Django会话到IP和/或用户代理。
项目描述
限制Django会话到IP和/或用户代理。
如果在创建会话后IP或用户代理发生更改,则请求将返回400响应,会话将被清除(所有会话数据将被删除,创建新的会话),并记录警告。这个中间件的目标是使攻击者难以使用他们获得的会话ID。这并不意味着会话ID的滥用变得不可能。
为了与IPv6隐私扩展兼容,默认情况下只检查IPv6地址的前64位。
文档
快速入门
安装django-restricted-sessions
pip install django-restricted-sessions
然后将其添加到中间件中的SessionMiddleware之后
MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", 'restrictedsessions.middleware.RestrictedSessionsMiddleware', .... ]
如果您使用RESTRICTEDSESSIONS_AUTHED_ONLY,请确保在AuthenticationMiddleware之后添加此中间件,以确保存在request.user。
历史
0.4.0 (2023-06-02)
更新Django支持到3.2,4.1和4.2(感谢@ronnievdc)。
其他各种清理和文档格式修复。
0.3.0 (2019-12-03)
更新Django支持到1.11,2.2和3.0。
修复了当X_FORWARDED_FOR包含多个地址时的问题。
0.2.0 (2017-04-06)
为支持 Django 1.10+,从 object 更改为 django.utils.deprecation.MiddlewareMixin
添加了 PyPI trove 类别以支持 Django 版本和更多 Python 版本
更新了 travis.yml 以支持更多 Python 版本
0.1.4 (2016-07-02)
修复了当用户代理字符串中包含非 UTF-8 字节时可能发生的异常
0.1.3.1 (2016-05-26)
版本升级以避免 PyPI 的重复文件名禁令
0.1.3 (2016-05-26)
添加了对重定向到已知视图或使用自定义状态码设置的兼容性
添加了对忽略未认证会话的兼容性
修复了 REMOTE_ADDR 未知时的短路问题
放弃了旧 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)
将缺少的 netaddr 需求添加到 setup.py 中
0.1.0 (2014-02-17)
在 PyPI 上的第一次发布
项目详情
django-restricted-sessions-0.4.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 23a6f179b1a2a2ded03a826de6530f72bf46c7c00f5abc698e9673c5227a316b |
|
MD5 | 9e1d7e1bbe057a12664cde89f37fefb3 |
|
BLAKE2b-256 | 094421196486c19ab5828a0dbc63db988de5fd9a2e20be7d96b912b0c5bd0228 |
django_restricted_sessions-0.4.0-py2.py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 082896f39d58524bc438b137d58eaa32faef4b264e99f2ea1f983761d4da2713 |
|
MD5 | c40e6dbd32229d73afa527cce279ce39 |
|
BLAKE2b-256 | aa720b0bef9d8142d06c897a30b0a13ab4c9b81aec9500442e2dbff71602e865 |