Flask-WTForms CSRF保護をAJAXで使用する方法?

rublex:

Flask-WTFormsはCSRF保護を提供します。通常のHTMLフォームを使用する場合はうまく機能しますが、AJAXを使用する場合のプロセスはそれほど明確ではありません。フォームにファイルをアップロードし、AJAXでプロセスを2つに分割しました。ファイルuploadの残りはエンドポイントに行き、ファイルの残りはsubmitエンドポイントに行きます。ファイルはAJAXで投稿されているため、CSRFトークンを取得できませんが、uploadエンドポイントを攻撃から保護したいと考えています。AJAXの使用時にCSRFトークンを生成するにはどうすればよいですか?

@app.route('/submit', methods=["GET","POST"])
@login_required
def submit():
    form = MyForm()

    if request.method == "POST" and form.validate():
        # success, csrf checks out and data is validated
        # do stuff

    csrf_for_uploads = # generate csrf?
    return render_template('some_form.html', form=form, csrf_for_uploads=csrf_for_uploads)

@app.route('/upload', methods=["POST"])
@login_required
def upload():
    myfile = request.files['file']
    # How do I verify CSRF now?
マット・ヒーリー:

ドキュメントは AJAXに関してCSRF保護の実装について少し話します。

モジュールを有効にすることができます:

from flask_wtf.csrf import CsrfProtect

CsrfProtect(app)

次に、これをAJAX POST呼び出しで使用します。

<meta name="csrf-token" content="{{ csrf_token() }}">

var csrftoken = $('meta[name=csrf-token]').attr('content')

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken)
        }
    }
})

お役に立てれば!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

FlaskのWTFormsでDecimalRangeFieldを検証する

分類Dev

Flask WTForms FieldList with BooleanField

分類Dev

WTFormsでのCSRF保護の使用-Alchemy

分類Dev

Flask-WTFormsのrender_kwでFlask-Babelgettextを使用する方法は?

分類Dev

FlaskとFlask-WTFormsを使用してフォームをループしている間、csrfラベルを非表示にする方法はありますか?

分類Dev

Flask WTFormsはvalidate_on_submit()で常にfalseを返します

分類Dev

Python Flask WTForms:「無効な選択」を返す動的SelectField

分類Dev

AJAXが入力されたFlaskForm(Flask-WTForms)SelectFieldの検証

分類Dev

wtforms + flask今日の日付をデフォルト値として

分類Dev

Flask-WTForms: name 属性と id 属性を動的に作成

分類Dev

Flask、WTForms:StringFieldを_一時的に_非表示にする方法はありますか?

分類Dev

WTForms Flask(wtf_flask)バリデーターRadioFieldの「必須」属性を含める方法

分類Dev

Flask-WTF / WTFormsを使用してFlaskにキャンセルボタンを追加します

分類Dev

Flaskを使用したWTFormsのカスタムバリデーター

分類Dev

Flask-WTForms form.validate()は動的な選択で失敗します

分類Dev

編集フォームにWTFormsとFlaskを事前入力します

分類Dev

Flask、wtformsは空のフォームをポストバックします

分類Dev

Flask / Python / WTForms の検証と動的に SelectField の選択肢を設定

分類Dev

Flask-WTFormsを使用してDRYの方法で反復フォーム要素を作成するにはどうすればよいですか?

分類Dev

WTForms RadioFieldサブフィールドを使用して、Flaskで画像を表示します

分類Dev

Flask / WTForms-フォームをインラインにするにはどうすればよいですか?

分類Dev

Flask / WTFormsで繰り返しサブフォームの数を変えてフォームを作成する

分類Dev

FlaskとWTFormsを使用したフォームのリンクに関する問題

分類Dev

Flask-jQueryを使用して次のフォームフィールドに移動するWTForms

分類Dev

Flask wtformsネストされた変数

分類Dev

Flask WTForms:DataRequiredとInputRequiredの違い

分類Dev

wtforms TextField/SearchField with autocompletion for flask app (similar to a google search bar)

分類Dev

Flask WTForms - Custom validators based of multiple form fields

分類Dev

Possible to build a flask "WTForms class" conditionally based on language cookie content

Related 関連記事

  1. 1

    FlaskのWTFormsでDecimalRangeFieldを検証する

  2. 2

    Flask WTForms FieldList with BooleanField

  3. 3

    WTFormsでのCSRF保護の使用-Alchemy

  4. 4

    Flask-WTFormsのrender_kwでFlask-Babelgettextを使用する方法は?

  5. 5

    FlaskとFlask-WTFormsを使用してフォームをループしている間、csrfラベルを非表示にする方法はありますか?

  6. 6

    Flask WTFormsはvalidate_on_submit()で常にfalseを返します

  7. 7

    Python Flask WTForms:「無効な選択」を返す動的SelectField

  8. 8

    AJAXが入力されたFlaskForm(Flask-WTForms)SelectFieldの検証

  9. 9

    wtforms + flask今日の日付をデフォルト値として

  10. 10

    Flask-WTForms: name 属性と id 属性を動的に作成

  11. 11

    Flask、WTForms:StringFieldを_一時的に_非表示にする方法はありますか?

  12. 12

    WTForms Flask(wtf_flask)バリデーターRadioFieldの「必須」属性を含める方法

  13. 13

    Flask-WTF / WTFormsを使用してFlaskにキャンセルボタンを追加します

  14. 14

    Flaskを使用したWTFormsのカスタムバリデーター

  15. 15

    Flask-WTForms form.validate()は動的な選択で失敗します

  16. 16

    編集フォームにWTFormsとFlaskを事前入力します

  17. 17

    Flask、wtformsは空のフォームをポストバックします

  18. 18

    Flask / Python / WTForms の検証と動的に SelectField の選択肢を設定

  19. 19

    Flask-WTFormsを使用してDRYの方法で反復フォーム要素を作成するにはどうすればよいですか?

  20. 20

    WTForms RadioFieldサブフィールドを使用して、Flaskで画像を表示します

  21. 21

    Flask / WTForms-フォームをインラインにするにはどうすればよいですか?

  22. 22

    Flask / WTFormsで繰り返しサブフォームの数を変えてフォームを作成する

  23. 23

    FlaskとWTFormsを使用したフォームのリンクに関する問題

  24. 24

    Flask-jQueryを使用して次のフォームフィールドに移動するWTForms

  25. 25

    Flask wtformsネストされた変数

  26. 26

    Flask WTForms:DataRequiredとInputRequiredの違い

  27. 27

    wtforms TextField/SearchField with autocompletion for flask app (similar to a google search bar)

  28. 28

    Flask WTForms - Custom validators based of multiple form fields

  29. 29

    Possible to build a flask "WTForms class" conditionally based on language cookie content

ホットタグ

アーカイブ