CSRF

  1. csrf原理
  2. 无csrf时存在隐患
  3. Form提交
  4. Ajax提交
  5. 默认为全局都csrf

Form表单提交方式:

 <div>
<form action="/login/" method="post">
{% csrf_token %}
<p>用户名:<input type="text" name="user"/></p>
<p>密码:<input type="password" name="pwd"/></p>
<input type="submit" value="提交" />
</form>
</div>

前端显示页面:

ajax提交方式:

前端页面:

<body>
<div>
<form action="/login/" method="post">
<p>用户名:<input type="text" name="user"/></p>
<p>密码:<input type="password" name="pwd"/></p>
<input type="button" value="提交2">
</form>
</div>
<script src="/static/jquery-1.12.4.min.js"></script>
<script src="/static/jquery.cookie.js"></script>
<script>
$(function () {
{#$.ajaxSetup(#}
{#    {#}
{# beforeSend:function (xhr,setting) {#}
{# xhr.setRequestHeader("X-CSRFtoken",$.cookie("csrftoken"))#}
{# }#}
{# }#}
{##}
{#)#}
     $.ajax(
{
url:"/login/",
type:"POST",
data:{"user":'root',"pwd":"1234"},
headers:{"X-CSRFTOKEN":$.cookie("csrftoken")},
success:function (arg) {
}
} )
})
</script>
</body>

Django学习手册 - csrf的更多相关文章

  1. django学习之- CSRF及中间件

    CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站请求伪造的功能工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端 ...

  2. Django学习手册 - 基于requests API验证(一)

    验证需要知道requests提交数据的几种方式: GET 方式: # get 方式,传递数值可以直接通过url传递:(服务端接受 GET) requests.get(url='http://127.0 ...

  3. Django 学习手册 - 下载数据库表格(XLS/CSV)

    下载XLS表格方式: 前置: 需要安装xlwt模块 views : def export_users_xls(request): response = HttpResponse(content_typ ...

  4. Django学习手册 - 基于requests API验证(二)

    原理分析: API接口验证 1.一个认证的key server端 和 client端都必须有这么一个认证key. 2.认证登录的时间限定 3.保存已验证的信息,在以后的验证不能再次登录 client ...

  5. Django学习手册 - 权限管理(二)

    从数据库获取数据后,对数据进行清洗 目标: 数据1,存放至session 中的数据 数据2,显示至前端的菜单数据 清洗数据: 1.session存放的数据:(menu_leaf_dict) 2.前端菜 ...

  6. Django学习手册 - 权限管理(一)

    权限管理原理: 不同角色拥有不同的角色权限,所以能否访问的页面也就不相同. 通过控制URL使用户访问到不同的URL,从而达到权限控制的目的. 设计权限数据库 权限管理 from django.db i ...

  7. Django学习手册 - 登录验证码

    生成验证码函数 import random from PIL import Image, ImageDraw, ImageFont, ImageFilter _letter_cases = " ...

  8. Django学习手册 - ORM 数据创建/表操作 汇总

    ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它 ...

  9. Django学习手册 - Form 插件

    """ 核心: from django import formsfrom django.forms import fieldsfrom django.forms impo ...

随机推荐

  1. 怎么在linux下创建一个可运行脚本?

    1.touch hello.sh 2.vim hello.sh键入i插入#!/bin/shecho hello world;键入:esc:wq3.chmod 700 hello.sh 4. 执行./h ...

  2. Modbus

    Modbus 串行链路协议是一个主-从协议.在同一时刻,只有一个主节点连接于总线,一个或多个子节点 (最大编号为 247 ) 连接于同一个串行总线. Modbus 通信总是由主节点发起.子节点在没有收 ...

  3. LightGBM 调参方法(具体操作)

     sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  4. 为SNP增加种族人群频率

    一.Ensemble:http://www.ensembl.info/2015/06/18/1000-genomes-phase-3-frequencies-genotypes-and-ld-data ...

  5. MySQL权限授权认证详解

    MySQL权限授权认证详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MySQL权限系统介绍1>.权限系统的作用是授予来自某个主机的某个用户可以查询.插入.修改.删除 ...

  6. TranslateMessage消息翻译和DispatchMessage消息分发

    TranslateMessage函数将虚拟键消息转换成字符消息.比如: 消息WM_KEYDOWN和WM_KEYUP组合产生一个WM_CHAR或WM_DEADCHAR消息. 消息WM_SYSKEYDOW ...

  7. samba服务器之无认证进入共享目录

    修改设备中的/log/samba/lib/smb.conf文件 security = share [web]                                               ...

  8. Debugger for chrome

    Debugger In VScode Getting Started Install the extension Debugger for chrome Config the launch.json ...

  9. bzoj千题计划309:bzoj4332: JSOI2012 分零食(分治+FFT)

    https://www.lydsy.com/JudgeOnline/problem.php?id=4332 因为如果一位小朋友得不到糖果,那么在她身后的小朋友们也都得不到糖果. 所以设g[i][j] ...

  10. NLP里面的一些基本概念

    1,corpus 语料库 a computer-readable collection of text or speech 2,utterance 发音 比如下面一句话:I do uh main- m ...