zoukankan      html  css  js  c++  java
  • Flask_CSRF保护(十一)

    flask中使用 flask-wtf 模块开启CSRF保护的方法如下:

    后端设置

    from flask import Flask
    from flask_wtf.csrf import CSRFProtect
    
    
    app = Flask(__name__)
    
    # 使用防csrf保护APP
    csrf = CSRFProtect(app)

    前端设置

    在头部或底部增加下列代码:

    <!--  如果开启csrf保护,需要在html页面中的head中定义如下代码  -->
    <meta name="csrf-token" content="{{ csrf_token() }}">

    在js中增加下列代码

    var csrftoken = $('meta[name=csrf-token]').attr('content')
    $.ajaxSetup({
        beforeSend: function(xhr, settings) {
            if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type)) {
                xhr.setRequestHeader("X-CSRFToken", csrftoken)
            }
        }
    })

    取消保护

    开启CSRF后,如果指定接口要取消保护,可以使用如下装饰器

    @csrf.exempt      # 取消csrf保护
    @app.route("/del", methods=["POST"])
    def delete():
        pass
  • 相关阅读:
    数据类型
    python安装
    计算机基础
    Ajax--1
    ASP.net+MVC--2
    More lumber is required
    History Grading
    strcmp() Anyone?
    How Many Points of Intersection?
    Remember the Word
  • 原文地址:https://www.cnblogs.com/testlearn/p/14133543.html
Copyright © 2011-2022 走看看