zoukankan      html  css  js  c++  java
  • CSRF验证

    1. 基本应用

    Form 表单中添加{%  csrf_token  %}

    可以通过查询网页元素得到它的name值和value值

    1. 全站禁用

    # ‘django.middleware.csrf.Csrf……’,在settings中注释该行,表示不要进行csrf验证

    1. 局部禁用

     ‘django.middleware.csrf.Csrf……’,在settings中注释该行

    From django.views.decorators.csrf import  csrf_exempt

    @csrf_exempt      

    def  csrf1(request):

             if  request.method==’GET’:

                    return  render(request,’csrf1.html’)

              else:return HttpResponse(‘ok’)

    给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%}

  • 相关阅读:
    【Liunx】centos防火墙
    【Liunx】基础命令
    【Flask】CBV模式
    【Flask】第三方插件
    【Flask】登录练习
    【Flask】特殊装饰器
    【Flask】蓝图
    Django之视图层
    Django之路由控制配置
    Django之静态文件配置
  • 原文地址:https://www.cnblogs.com/IQ-Python/p/7095172.html
Copyright © 2011-2022 走看看