CSRF驗證

 

  1. 基本應用

Form 表單中添加{%  csrf_token  %}html

能夠經過查詢網頁元素獲得它的name值和value值django

  1. 全站禁用

# ‘django.middleware.csrf.Csrf……’,在settings中註釋該行,表示不要進行csrf驗證post

  1. 局部禁用

 ‘django.middleware.csrf.Csrf……’,在settings中註釋該行spa

From django.views.decorators.csrf import  csrf_exemptorm

@csrf_exempt      csrf

def  csrf1(request):htm

         if  request.method==’GET’:token

                return  render(request,’csrf1.html’)get

          else:return HttpResponse(‘ok’)form

給csrf1()一個裝飾器csrf_exempt,做用是讓csrf1()不要進行csrf驗證

  1. 局部使用

# ‘django.middleware.csrf.Csrf……’,在settings中註釋該行

From django.views.decorators.csrf import  csrf_exempt,csrf_protect

@csrf_protect

def  csrf1(request):

       if  request.method==’GET’:

                return  render(request,’csrf1.html’)

          else:return HttpResponse(‘ok’)

給csrf1()一個裝飾器csrf_protect,做用是讓csrf1()要進行csrf驗證

2. 特殊CBV

from django.views import View

from django.utils.decorators import method_decorato

@method_decorator(csrf_protect,name='dispatch')

class Foo(View):

def get(self,request):

pass                                            

def post(self,request):

pass

                                             

在form表單中進行提交時,後臺會自動進行csrf的驗證,即沒有註釋‘django.middleware.csrf.Csrf……’它,就必須在

form表單中添加{%csrf_token%}

相關文章
相關標籤/搜索