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")
后记
【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。
也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!
公众号


关注我,我们一起成长~~
Django前后端安全验证的更多相关文章
- 从零开始搭建django前后端分离项目 系列一(技术选型)
前言 最近公司要求基于公司的hadoop平台做一个关于电信移动网络的数据分析平台,整个项目需求大体分为四大功能模块:数据挖掘分析.报表数据查询.GIS地理化展示.任务监控管理.由于页面功能较复杂,所以 ...
- [django]前后端分离之JWT用户认证
在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了.于是我 ...
- luffy项目搭建流程(Django前后端分离项目范本)
第一阶段: 1.版本控制器:Git 2.pip安装源换国内源 3.虚拟环境搭建 4.后台:Django项目创建 5.数据库配置 6.luffy前 ...
- vue+django前后端项目部署
一.python3的安装 1.安装python前的库环境: yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel ...
- Django前后端分离跨域请求问题
一.问题背景 之前使用django+vue进行前后端分离碰到跨域请求问题,跨域(域名或者端口不同)请求问题的本质是由于浏览器的同源策略导致的,当请求的响应不是处于同一个域名和端口下,浏览器不会接受响应 ...
- Django 前后端数据传输、ajax、分页器
返回ORM目录 Django ORM 内容目录: 一.MTV与MVC模式 二.多对多表三种创建方式 三.前后端传输数据 四.Ajax 五.批量插入数据 六.自定义分页器 一.MTV与MVC模式 M ...
- Django前后端分离项目部署
vue+drf的前后端分离部署笔记 前端部署过程 端口划分: vue+nginx的端口 是81 vue向后台发请求,首先发给的是代理服务器,这里模拟是nginx的 9000 drf后台运行在 9005 ...
- Django前后端交互&数据验证
一.前端--->后端 1.form表单 <form method="post" action="/test/?a=1&b=2"> {% ...
- 一、Django前后端交互之Ajax和跨域问题
一.Ajax介绍 1.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Jav ...
随机推荐
- Python-joypy和 R-ggridges 峰峦图制作
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 以下文章来源于DataCharm,作者 宁海涛 转载地址 https://www ...
- 开源后台系统*mee-admin*
mee-admin开源后台系统 Preface 这是一个开放的时代,我们不能总是把东西揣在口袋里面自己乐呵. 也正如名言所说的"如果你有两块面包,你当用其中一块去换一朵水仙花" 所 ...
- Navicat连接MySQL报错-2059
解释原因:据说,mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是 ...
- 上海hande
HZero UI 一个服务于企业级产品的设计体系,基于『确定』和『自然』的设计价值观和模块化的解决方案,让设计者专注于更好的用户体验. Choerodon UI of React Choerodon ...
- 联赛模拟测试12 B. trade
题目描述 分析 \(n^2\) 的 \(dp\) 应该比较好想 设 \(f[i][j]\) 为当前在第 \(i\) 天剩余的货物数量为 \(j\) 时的最大收益 那么它可以由 \(f[i-1][j]\ ...
- 小程序将base64的多张图片,传到tp5后台
zhu要是前端传过来的数据是base64的数据库存储不了base64的数据,因存储量太过于大,因此后台要将base64的数据转换成,34124323534.jpg等格式的,数据库才可将其存储 源码暂时 ...
- 2016年 实验五 Internet与网络工具的使用
实验五 Internet与网络工具的使用 [实验目的] 本实验目的在于掌握 Telnet.FTP.Email的工作机理,并会在 Internet 上熟练使用相关工具软件. [实验条件] ⑴.个人计算机 ...
- 2016年 实验二、C2C模拟实验
实验二.C2C模拟实验 [实验目的] 掌握网上购物的基本流程和C2C平台的运营 [实验条件] ⑴.个人计算机一台 ⑵.计算机通过局域网形式接入互联网. (3).奥派电子商务应用软件 [知识准备] 本实 ...
- 多测师讲解jmeter _图片详解_(全)高级讲师肖sir
- 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir
讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...