CSRF
- 防跨站攻击
- 防止恶意注册,确保客户端是我们自己的客户端
- 使用了cookie中csrftoken 进行验证,传输
- 服务器发送给客户端,客户端将cookie获取过来,还要进行 编码转换 (数据安全)
如何实现的
- 在我们 存在csrf_token 标签的页面中,响应会自动设置一个cookie: csrftoken
- 当我们提交的时候,会自动验证csrftoken
- 验证通过,正常执行以后流程,验证不通过,直接403,别人不知道你生成csrf规则,就被拒绝访问,也就不能收到攻击,将攻击者防在外面
我们之前在实验的时候将CSRF注释掉了,否则POST请求会失败
原因是应为我们没有给客户端进行授权
解决方法:模板two_token中添加标签
我们发现在POST请求中csrf_token检验了POST请求中有没有csrf_token这样一个字段,并且将其值取出来验证,验证成功则通过,否则登陆失败。(防止别人注册很多辣鸡账号)
倘若我们访问还是出现上述报错,尝试方法2:
在返回页面的views的方法上添加一个
@csrf_exempt
并且导入模块
from django.views.decorators.csrf import csrf_exempt
然后页面去掉 {% csrf_token %} 就能正常使用
算法
编码解码
- Base64
- urlencode
摘要算法,指纹算法,杂凑算法
MD5,SHA
- MD5 默认是128的二进制
- 也就是32位的十六进制
- 最终转换成32位的Unicode
- 单向不可逆的,这些不是加密算法
- 不管输出多长,输出都是固定长度
- 只要输入有任意的变更,输出都会发生巨大的变化
- 用法:保护数据安全,指纹验证,假如下载pycharm客户端,为了保证你的下载文件没有被篡改或者植入木马以及完整,官方会给一个工具验证MD5值,保证完整性。
加密算法
对称加密
- 一把钥匙
- DES,AES
- 加密解密效率高
- 钥匙一旦丢失,所有数据就全玩完了
非对称加密
- 两把钥匙,成对的
- 公钥和私钥
- RSA,PGP
- 安全性最高
- 算法复杂,需要时间长
- 支付宝,微信都是RSA
目前状态
MTV
- 基本完成
- Template不会再讲了
- Views也不会再讲了
Model
- Model关系,一对一,一对多,怎么操作
- Model继承
高级
- 第三方插件
底层的部分原理
AOP 面向切面编程
- 反扒策略
- 安全策略
- 文件上传
前后端分离
- RESTful
- 日志
- 后台管理
- 用户角色,用户权限,不同用户有不同权限,能访问不同的管理页面
- 部署
- 支付宝支付功能
此处评论已关闭