flask的CSRF保护

为什么需要 CSRF?

Flask-WTF 表单保护你免受 CSRF 威胁,你不需要有任何担心。尽管如此,如果你有不包含表单的视图,那么它们仍需要保护。

例如,由 AJAX 发送的 POST 请求,然而它背后并没有表单。在 Flask-WTF 0.9.0 以前的版本你无法获得 CSRF 令牌。这是为什么我们要实现 CSRF。

实现

为了能够让所有的视图函数受到 CSRF 保护,你需要开启CsrfProtect模块:

from flask_wtf.csrf import CsrfProtect

CsrfProtect(app)

 

或者

from flask_wtf.csrf import CsrfProtect

csrf = CsrfProtect()

def create_app():
    app = Flask(__name__)
    csrf.init_app(app)

如果模板中存在表单,你不需要做任何事情。与之前一样:

{{ form.csrf_token }}

但是如果模板中没有表单,你仍然需要一个 CSRF 令牌:

你可能感兴趣的:(HTML,网站,Python,csrf,flask)