crsf跨站请求伪造
Django框架中请求伪造保护机制
from django.views.decorators.csrf import csrf_exempt,csrf_protect
注意点:
CBV情况,csrf_exempt装饰器要加在dispatch上
从cookie中获取csrftoken的值 —— 》 request.META[‘CSRF_COOKIE‘]
3.进行校验的:
1、
csrf_token = request.META.get(‘CSRF_COOKIE‘) # csrf_token = cookie中获取csrftoken的值
2、
先尝试从request.POST获取csrfmiddlewaretoken对应的值 request_csrf_token = request.POST.get(‘csrfmiddlewaretoken‘, ‘‘) # 获取隐藏标签的csrfmiddlewaretoken对应的值 再尝试从请求头中获取X-csrftoken的值 request_csrf_token = request.META.get(settings.CSRF_HEADER_NAME, ‘‘)
3、拿csrf_token和request_csrf_token 进行对比
对比成功,校验成功
对比不成功,校验失败,拒绝
原文:https://www.cnblogs.com/xinjie123/p/10962584.html