禁止CSRF校验实例
静态文件----提交表单 本例在static目录中建立了一个from.html静态页面,该页面有一个<form>标签,用于向服务端提交POST请求,然后在post.py脚本文件中添加一个路由方法,用于处理HTTP POST请求, 并返回请求字段值。 本实例涉及一个CSRF校验的问题,CSRF是Cross-site request forgery(跨站请求伪造)的缩写,CSRF校验就是为了防止CSRF攻击进行的校验。由于CSRF校验与本例无关。 所以使用@csrf_exempt装饰器将CSRF校验关闭 1、在Firstdjango工程项目中手工创建一个文件名为static 2、配置静态目录 在setting.py中找到STATIC_URL配置如下: STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,"static"),
) 3、添加APP包名(项目名称) 在setting.py中找到INSTALLED_APPS添加App的包名(也就是项目名称) INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Firstdjango', #新添加的APP名(项目名称)
] 4、在工程的Firstdjango目录中建立一个post.py脚本文件,然后在post.py文件中添加如下内容: from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
#禁止CSRF校验
@csrf_exempt
def myPost(request):
# 从HTTP POST请求中获取user字段
user=str(request.POST.get('user'))
# 从HTTP POST 请求中获取age字段值
age=str(request.POST.get('age'))
result='<h2>name:<font color="red">' + user +'</font></h2>'
result+='<h2>age:<font color="blue">' + age +'</font></h2>'
return HttpResponse(result) 5、然后在Firstdjango目录中找到urls.py脚本文件,用下面的代码代替urls.py脚本里面的内容: from django.conf.urls import url
from .import post
urlpatterns=[
#下面代码是本例添加的路由方法与正则表达式的映射
url(r'^post$',post.myPost),
] 6、在静态文件static目录中中创建一个from.html静态页面,添加内容如下: <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Form</title>
</head>
<body>
<!-- 用于提交POST请求的Form表单-->
<form action="/post" method="post">
User:<input name="user"/><br>
Age:<input name="age"/><br>
<input type="submit" value="提交">
</form>
</body>
</html> 7、启动django工程 8、浏览器访问 http://127.0.0.1:8000/static/form.html 9、添加静态目录static、静态文件form.html位置如下图所示:
禁止CSRF校验实例的更多相关文章
- Yii2 中禁用csrf校验
Yii2 默认开启csrf校验,但是有些时候确实不需要校验,比如对外提供API 一般做法直接在xxController中增加属性: public $enableCsrfValidation = fal ...
- Django csrf校验
引入: 通常,钓鱼网站本质是本质搭建一个跟正常网站一模一样的页面,用户在该页面上完成转账功能 转账的请求确实是朝着正常网站的服务端提交,唯一不同的在于收款账户人不同. 如果想模拟一个钓鱼网站,就可是给 ...
- JSON Schema 校验实例
JSON Schema 简介 JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. ...
- csrf攻击实例
CSRF 攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执行在权限保护之下的操作.比如说,受害者 Bob 在银行有一笔存款,通过对银行的网站发送请求 ht ...
- struts2+jquery+ajax实现上传&&校验实例
一直以为ajax不能做上传,直到最近看了一些文章.需要引入AjaxFileUploaderV2.1.zip,下载链接:http://pan.baidu.com/s/1i3L7I2T 代码和相关配置如下 ...
- python登录项目
简单的django登录项目 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdjango工程项目 ...
- 建立django项目的完整流程
简单的django登录项目 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdjango工程项目 ...
- 简单的django登录项目---带views视图函数(脚本文件)---用Bootstrap
简单的django登录项目 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdjango工程项目 ...
- django—csrf中间件校验流程
CSRF(跨站请求伪造)是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法. 这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求 ...
随机推荐
- python----PySnooper获取打印日志
官网链接:https://pypi.org/project/PySnooper/ 安装:pip install PySnooper 使用方式,直接 导入import pysnooper,添加装饰器 ...
- Matplotlib模块的基本使用
一.折线绘图 import pandas as pd import matplotlib.pyplot as plt data = pd.read_csv("F:\\ml\\机器学习\\01 ...
- 使用 ajax 多次请求,并将结果集合并(ajax 非异步)
直接上代码吧... 里面有注释 <!DOCTYPE html> <html> <head> <meta charset="utf-8" / ...
- JavaScript 常用Object
对象 - Map 功能:Map 对象保存键值对. 方法: new Map():新建一个 Map 对象 Map.prototype.has(key):返回布尔值.表示 Map 实例是否包含键对应的值. ...
- Restful架构API编码规范
Restful API 目前比较成熟的一套互联网应用程序的API设计理论 一.协议 API与用户的通信协议,总是使用HTTPs协议. 二.域名 应该尽量将API部署在专用域名之下. https://a ...
- HR#7 题解
T1 签到题 #include<bits/stdc++.h> #define R register int using namespace std; inline int g() { R ...
- 对深层嵌套对象进行取值&赋值
需求如下: let obj = { foo: { bar: { name: 'biz' } } }; // 输出 'biz' this.getObj(obj, 'foo.bar.name'); obj ...
- 爬虫(十一):scrapy中的选择器
Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分Xpath是专门在XML文件中选择节点的语言,也可以用在HTM ...
- 使用开源软件 jumpserver 搭造自己的堡垒机
使用开源软件 jumpserver 搭造自己的堡垒机 开软地址:https://github.com/jumpserver/jumpserver 目前版本:1.5.2 测试的时候有少许BUG,但功能却 ...
- Centos7 node npm升级版本
安装npm 官网:https://nodejs.org/en/download/ 下载LTS Linux Binaries (x64)版本. # tar xf node-v10.16.3-linux- ...