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

  • 相关阅读:
    HDU 3008 DP
    XCode 7 高速切换代码窗体和文档窗体
    软工视频(37~46)-软件管理
    js 实现对ajax请求面向对象的封装
    sgu101Domino
    如何查看Eclipse的数字版的版本(转)
    Java的历史和大事记
    Eclipse使用前准备(转)
    启动 Eclipse 弹出“Failed to load the JNI shared library jvm.dll”错误的解决方法!
    如何快速配好java环境变量和查看电脑上安装JDK的版本位数
  • 原文地址:https://www.cnblogs.com/IQ-Python/p/7095172.html
Copyright © 2011-2022 走看看