Django添加防跨站请求伪造中间件
2017-05-03 11:05
190 查看
第一步:
在全局设置中打开此中间件:
MIDDLEWARE_CLASSES = [
...
'django.middleware.csrf.CsrfViewMiddleware',
...
]
第二步:
在提交表单中添加{% csrf_token %}:
<form id='input_form' action='/index/' method='POST'>
{% csrf_token %}
</form>
第三步:
在views处理返回时添加参数context_instance=RequestContext(request):
return render_to_response('index.html',context_instance=RequestContext(request))
至次已经配置成功,如果要影响一些局部设置,可以用如下装饰器来修饰:
@csrf_protect,为函数强制设置防跨站请求伪造功能,即便settings中没有csrf中间件。
@csrf_exempt,取消函数防跨站请求伪造功能,即便settings中添加了csrf中间件。
如下:
@csrf_exempt
def index(request):
return render_to_response('index.html',context_instance=RequestContext(request))
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在全局设置中打开此中间件:
MIDDLEWARE_CLASSES = [
...
'django.middleware.csrf.CsrfViewMiddleware',
...
]
第二步:
在提交表单中添加{% csrf_token %}:
<form id='input_form' action='/index/' method='POST'>
{% csrf_token %}
</form>
第三步:
在views处理返回时添加参数context_instance=RequestContext(request):
return render_to_response('index.html',context_instance=RequestContext(request))
至次已经配置成功,如果要影响一些局部设置,可以用如下装饰器来修饰:
@csrf_protect,为函数强制设置防跨站请求伪造功能,即便settings中没有csrf中间件。
@csrf_exempt,取消函数防跨站请求伪造功能,即便settings中添加了csrf中间件。
如下:
@csrf_exempt
def index(request):
return render_to_response('index.html',context_instance=RequestContext(request))
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
相关文章推荐
- 自动化运维Python系列之Django CSRF跨站请求伪造、中间件 推荐
- Django--中间件
- django 使用中间件 访问request里面的内容
- 关于django中间件的知识
- Django——中间件
- python3开发进阶-Django框架的中间件的五种用法和逻辑过程
- Django 1.5.4 专题三 添加admin.py
- Django开发,给admin模块添加富文本
- Django——中间件
- django 原有表格添加或删除 字段
- Django框架全面讲解 -- 跨站请求伪造(csrf)
- Django中中间件系列之十四
- django数据库操作和中间件
- Django的中间件
- 15.Django添加一个功能模块的步骤(和SpringMVC类比)
- python,django做中间件屏蔽非法访问
- Django1.6添加comments应用的简单过程
- vscode为django添加合适的pylint
- django 中间件 request.path 与get_full_path
- 第三百一十六节,Django框架,中间件