客户端和服务器端会话超时警告
项目描述
此应用程序提供了一种注销非活动已认证用户的方法。如果用户离开工作站,则非活动浏览器应自动注销,以保护浏览器中可能显示的敏感数据。这可能对CRM、内部网和类似项目有用。
例如,如果用户离开去喝咖啡,此应用程序可以在用户5分钟内未活动后强制注销。
为什么不在X分钟后使会话过期?
或者“为什么这个应用程序甚至存在?”以下是一些原因
如果用户会话在用户完成阅读页面之前过期:他将需要再次登录。
如果用户会话在用户完成填写表单之前过期:他的工作将会丢失,他需要重新登录,并且可能还会对你,亲爱的Django开发者……大喊大叫……至少我知道我会这样!
此应用允许绕过会话超时的限制。
它是如何工作的呢?
当用户加载页面时,SessionSecurity中间件会将最后活动设置为当前时间。最后活动以datetime形式存储在 request.session['_session_security'] 中。为了避免中间件更新该最后活动datetime的URL,请将URL添加到 settings.SESSION_SECURITY_PASSIVE_URLS。
当用户移动鼠标、点击、滚动或按键时,SessionSecurity会将DateTime作为JavaScript属性保存。它将在下次应该ping时将自上次用户活动记录以来经过的秒数发送到PingView。
首先,应该在 settings.SESSION_SECURITY_WARN_AFTER 秒后显示一个警告。警告显示类似“您的会话即将过期,移动鼠标以延长它”的文本。
在显示此警告之前,SessionSecurity将上传自上次客户端活动记录以来经过的时间。如果它比中间件已有的时间短——即另一个浏览器标签中检测到了另一个更近的活动。PingView将回复自上次活动以来经过的秒数——包括所有浏览器标签。
如果服务器没有记录其他更近的活动:它将显示警告。否则,它将根据PingView的响应更新javascript中的最后活动。
同样,在 settings.SESSION_SECURITY_EXPIRE_AFTER 秒后过期。JavaScript将首先向PingView发送一个ajax请求,以确保没有在其他任何地方检测到更近的活动——在任何其他浏览器标签中。
需求
Python 2.7或3.5以上
jQuery 1.7以上
Django 1.8到2.0
django.contrib.staticfiles或#YoYo
资源
您可以订阅邮件列表,提问或只是了解包更新。
由GitHub慷慨托管的Git,
由RTFD慷慨托管的文档,
由PyPi慷慨托管的包,
由Google慷慨托管的邮件列表
对于 安全 问题,请联系 yourlabs-security@googlegroups.com
由Travis-ci慷慨托管的持续集成
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码分发
构建分发
django-session-security-2.6.7.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 752b70865706afca39a62650eacd5d1e03a2baba31d46b2e1b96ad60c30553f3 |
|
MD5 | ec64ccbcac890bb0853345788b3f11b0 |
|
BLAKE2b-256 | 5c62a97276014bf73c915ff9c1524236de0d87de4b71382f1c597fec15517a55 |
django_session_security-2.6.7-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0457259b0e8bfd9575b2d767b8de794170386c87bc99ee2758fd605bfc800937 |
|
MD5 | f0e3ebbbbd0905bc522aa55c581e0764 |
|
BLAKE2b-256 | d8cf01aaf450d10f5272b1be30dd52d78567dd06ab56629cc4b2053fb69df07b |