Django学习手册 - csrf
CSRF
- csrf原理
- 无csrf时存在隐患
- Form提交
- Ajax提交
- 默认为全局都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的更多相关文章
- django学习之- CSRF及中间件
CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站请求伪造的功能工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端 ...
- Django学习手册 - 基于requests API验证(一)
验证需要知道requests提交数据的几种方式: GET 方式: # get 方式,传递数值可以直接通过url传递:(服务端接受 GET) requests.get(url='http://127.0 ...
- Django 学习手册 - 下载数据库表格(XLS/CSV)
下载XLS表格方式: 前置: 需要安装xlwt模块 views : def export_users_xls(request): response = HttpResponse(content_typ ...
- Django学习手册 - 基于requests API验证(二)
原理分析: API接口验证 1.一个认证的key server端 和 client端都必须有这么一个认证key. 2.认证登录的时间限定 3.保存已验证的信息,在以后的验证不能再次登录 client ...
- Django学习手册 - 权限管理(二)
从数据库获取数据后,对数据进行清洗 目标: 数据1,存放至session 中的数据 数据2,显示至前端的菜单数据 清洗数据: 1.session存放的数据:(menu_leaf_dict) 2.前端菜 ...
- Django学习手册 - 权限管理(一)
权限管理原理: 不同角色拥有不同的角色权限,所以能否访问的页面也就不相同. 通过控制URL使用户访问到不同的URL,从而达到权限控制的目的. 设计权限数据库 权限管理 from django.db i ...
- Django学习手册 - 登录验证码
生成验证码函数 import random from PIL import Image, ImageDraw, ImageFont, ImageFilter _letter_cases = " ...
- Django学习手册 - ORM 数据创建/表操作 汇总
ORM 查询的数据类型: QuerySet与惰性机制(可以看作是一个列表) 所谓惰性机制:表名.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它 ...
- Django学习手册 - Form 插件
""" 核心: from django import formsfrom django.forms import fieldsfrom django.forms impo ...
随机推荐
- C sockets Errno
在Windows下进行网络编程,免不了出现各种错误.在Linux下可以使用errno查看错误,但是根据stackoverflow上说,windows下应该使用: FormatMessage() WSA ...
- HTML学习笔记Day15
一.CSS3渐变 (一).CSS3渐变(gradient)可以让你在两个或多个指定的颜色之间显示平稳的过度:渐变效果比使用图片在放大时看起来效果更好,因为渐变(gradient)是由浏览器生成的 1. ...
- nginx.conf配置文件详解
一:nginx配置文件结构 nginx配置文件主要分为六个区域: main(全局设置).events(nginx工作模式).http(http设置). sever(主机设置).location(URL ...
- DBMS客户端是否安装:Make sure DBMS client is installed and this required library is available for dynamic loading
Symptom The full error message is as follows:Error logging in. Unable to process the database trans ...
- C# string.format用法详解
String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项. Str ...
- sklearn-数据预处理scale
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- kernel(一)编译体验
目录 打补丁 配置 总结 配置方式 配置体验 配置详解 Makefile解析 子目录的Makefile 架构下面的Makefile 顶层Makefile Make解析 编译 链接 链接脚本 烧写内核 ...
- RocketMQ_问题_启动报错,修改堆内存大小
1.启动broker报错 虚拟机内存小,导致虚拟机中的JVM内存小,进而在启动broker时分配JVM内存遇到问题 查询网上得知,查看/usr/local/rocketmq-all-4.3.0/dis ...
- java FindMyIP.java
s ganymed-ssh2-build210.jar package com.iteye.lindows.ssh.ip; import java.io.BufferedReader; import ...
- ThreadPoolExecutor线程池详解
七个参数: corePoolSize:核心池的大小,在创建了线程池后,默认情况下,线程池中并没有任何线程,而是等待有任务到来才创建线程去执行任务,当有任务来之后,就会创建一个线程去执行任务,当线程池中 ...