• django的csrf_token的原理


     1 # csrf_token 标签
     2 # 作用: django 自带的一个中间件,用在form标签上,用户校验当前提交的数据是否是 指定页面上提交的数据,跨站请求伪造保护的作用.
     3 
     4 1,打开settings.py里面的csrftoken 功能(取消注释)
     5 2,视图函数
     6     def login(request):
     7         if request.method == 'GET':
     8             nk = ['a','b','c','d']
     9             return render(request,'login.html',{ 'a1':nk })
    10         else:
    11             print(request.body)
    12             return HttpResponse('POST 的请求方式')
    13 3,模板文件
    14     <form action="" method="post">
    15         {% csrf_token %}                                           # 这里加上 {% csrf_token %} 这句代码,表师启用 csrf_token     
    16         <h3>用户名: <input type="text" name="name"></h3>
    17         <h3>密码: <input type="password" name="password"></h3>
    18         <input type="submit">
    19     </form>
    20 
    21 # 请求流程:
    22    # 客户端: web段:http://127.0.0.1:8000/login  
    23    # 服务端: 发送给客户端 一个login.html的页面,经过中间件的时候,中间件会在这个页面里加上一个隐藏的input标签,里面时csrf的 name和value
    24    # 客户端: 收到了login.html的页面,开始填写表单,并点击submit 提交form表单,这里表单里包含了 隐藏的csrf的input的标签.
    25    # 服务端: 收到客户端的提交的数据包,会首先在中间件层进行csrf_token的校验,看是否是本机生成的token,如果不是,直接403,如果是,继续走视图函数里定义的代码.
  • 相关阅读:
    CSS 页面锚点设置
    CSS尺寸 物理像素、CSS像素、dip、dpr、ppi、dpi(一)
    项目代码格式化规范
    Vue 计算属性与监听属性区别
    Python操作InfluxDB
    InfluxDB学习
    Redis学习(五)| 哈希 Hash
    Redis学习(四)| 字符串 String
    Redis学习(三)| 命令、键
    Redis学习(二)| 数据类型
  • 原文地址:https://www.cnblogs.com/kaishirenshi/p/12355306.html
Copyright © 2020-2023  润新知