いくつかの方法でジャンゴcsrftoken CSRF

1.はじめに

我々は、バックエンドにするとき、フロントエンドからのデータを送信する前に、これをコメントアウトしcsrftokenにミドルウェアの設定されている実際には、データの保護効果上の悪意のある攻撃を避けるために、大きなを果たしました。しかし、これは選択の直接のコメント知的タイプではありません、ここでは、この問題を解決するための方法をいくつか紹介します。

原則CSRF:ポスト要求を送信する際にランダムな文字列の貯水池、最初のGET要求、ユーザーのブラウザに送信し、ブラウザが自動的に文字列を識別することが運びます

2.モード1

追加{%csrf_token%}フロントエンドでは、データのフロントエンドから送信されたデータは、次の追加のAjax。

csrfmiddlewaretoken: $("[name='csrfmiddlewaretoken']").val()

3.第二の方法

X-CSRFTokenは、AJAXリクエストヘッダに加え、値はクッキーcsrftokenからフェッチされなければなりません

 $('#login').click(function () {
        $.ajax(
            {
                url:{% url 'login' %},
                type: 'post',
                headers:{ "X-CSRFToken":$.cookie('csrftoken') },
                data: {
                    user: $('[name="user"]').val(),
                    pwd: $('[name="pwd"]').val()
                },
                success: function (data) {
                    data = JSON.parse(data);
                    if (data.status) {
                        window.location = data.url
                    }
                    else {
                        alert('登陆错误')
                    }
                }
            }
        )
    })

4. 3つの方法
.ajaxSetup $()を使用して、グローバルなデフォルトパラメータのAJAXを追加します

$.ajaxSetup({
        headers: {"X-CSRFToken": $.cookie('csrftoken')},
    });

PS:私は誰も答えを問題に遭遇していませんか?Pythonの学習教材が必要?あなた自身を追加することができます下のリンクをクリックしてGET
note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

5. 4つの方法
デコレータ添加ensure_csrf_cookieにクッキーを設定する必要の観点から()

from django.views.decorators.csrf import ensure_csrf_cookie

@ensure_csrf_cookie
def server(request):

    return render(request, 'server.html')

おすすめ

転載: www.cnblogs.com/python960410445/p/11963981.html