香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

Django框架会话技术实例分析【Cookie与Session】


时间:2022-04-02 10:37 作者:admin


本文实例讲述了Django框架会话技术。分享给大家供大家参考,具体如下:

会话技术

1、Cookie

客户端会话技术(数据存储在客户端) 以key-value的形式进行存储 cookie的操作都是通过Response来实现的 典型场景 购物车 登录信息 支持过期时间 Cookie清除策略 默认关闭浏览器时cookie自动清除 配置Cookie过期时间 max-age=0 关闭就失效 max-age=None 永久有效 max-age = int 单位秒 expires 过期时间,和max-age功能基本一致 用户登出,就是清除了cookie(令牌)

2、Session

服务端会话技术 Session依赖于Cookie 将Session在数据库中的session_key,当作sessionid,存储在cookie中 Session数据存储在数据库中,并且做了基本的数据安全处理(base64编码)

3、Token

服务端会话技术 相当于手动实现的session 值应该是唯一的 要通过特定算法保证唯一 时间 ip 域名 网卡 mac 随机数

4、解决痛点

解决短连接无法保存用户状态的问题 延长了请求的生命周期 用户管理实例 用户注册 将数据存储到数据库 数据安全 密码对谁都是不透明的 用户登陆 将登陆提交过来的信息和数据库内的信息进行校验 返回不成功结果要刻意模糊概念 用户信息 根据用户的唯一标识,去获取用户 用户退出 清除令牌 清理cookie,session,或 token

5、数据安全

策略 服务器的数据对任何人来说都应该是不可见的(不透明) 可以使用常见的摘要算法对数据进行摘要(md5,sha) 在所有数据验证的地方都加上安全保护措施

6、摘要算法

hashlib sha md5 用来验证数据完整性(不被篡改) 哪怕【消息原文】被改动一丁点,【篡改版消息生成的消息摘要】都会与【原始消息所生成的消息摘要】的大相径庭 统一输出 输出默认都是128位二进制数 32位16进制数 单向不可逆

7、UUID

唯一标识 纳秒级的时间 1ns 创建 1m个id mac 地址 机器编码 随机数 uuid

uuid1()
uuid3()
uuid4()
uuid5()

8、常用API

生成消息摘要
def generate_password(password):  #定义算法  sha = hashlib.sha512()  #更新算法内容区(密码字节)  sha.update(password.encode("utf-8"))  #使用算法生成摘要  return sha.hexdigest()
cookie
response.set_cookie("uname", username)response.set_cookie("uname", username, max_age=30)response.set_cookie("uname", username, expires=timedelta(minutes=1))uname = request.COOKIES.get('uname',None)response.delete_cookie("uname")
助记 操作客户端唯有通过Response对象 方法无非get,set,delete session
- uname = request.session.get('uname')- request.session['uname'] = username- request.session.flush() - 同时清除cookie 和 session- del request.session['uname']
助记 session是存在于服务端本地的,而Request的COOKIE当中存有sessionid,因此通过Request对象去关联用户的session 方法无非get,set,del,flush token
response.set_cookie("utoken", token)utoken = request.COOKIES.get("utoken")

希望本文所述对大家基于Django框架的python/' target='_blank'>python程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)