跳转到主要内容

限制Django会话到IP和/或用户代理。

项目描述

https://badge.fury.io/py/django-restricted-sessions.png https://travis-ci.org/mxsasha/django-restricted-sessions.png?branch=master https://coveralls.io/repos/mxsasha/django-restricted-sessions/badge.png?branch=master&

限制Django会话到IP和/或用户代理。

如果在创建会话后IP或用户代理发生更改,则请求将返回400响应,会话将被清除(所有会话数据将被删除,创建新的会话),并记录警告。这个中间件的目标是使攻击者难以使用他们获得的会话ID。这并不意味着会话ID的滥用变得不可能。

为了与IPv6隐私扩展兼容,默认情况下只检查IPv6地址的前64位。

文档

完整文档在 https://django-restricted-sessions.readthedocs.org

快速入门

安装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 (8.5 kB 查看散列)

上传时间

构建分布

django_restricted_sessions-0.4.0-py2.py3-none-any.whl (5.9 kB 查看散列)

上传时间 Python 2 Python 3

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面