403 Forbidden. "CSRF トークンがないか不正確です" 応答処理ソリューション
2022-03-02 17:52:19
Django プロジェクトの settings.py にある django.middleware.csrf.CsrfViewMiddleware ミドルウェアは、 Django にデフォルトで csrf 認証を提供します。
ミドルウェアはcsrf_tokenをクッキーに設定し、実際には暗号化されていないcsrf_tokenをセッションに格納し、生成されたセッションID番号をクッキーに格納します。
settings.py ファイルに django.middleware.csrf.CsrfViewMiddleware が存在するかどうかを判定します。
ajax送信リクエスト
jsで、cookieからcsrf_tokenを取得し、それをajaxリクエストヘッダに追加します。
// Regularly match the csrftoken in the cookie, passing in the cookie name
function getCookie(name) {
var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
return r ? r[1] : undefined;
}
$.ajax({
...
headers: {
"X-CSRFToken": getCookie("csrftoken")
},
....
<form action="/" method="post">
{% csrf_token %}
...
<イグ
フォーム送信
フォームに{% csrf_token %}を追加します。
<form action="/" method="post">
{% csrf_token %}
...
バリデーション処理。
-
リクエストヘッダ/(フォーム)でcsrf_token(暗号化)を取得し、secret_keyで復号してcsrf_tokenを取得します。
-
csrf_token(非暗号化)を、CookieのsessionIDを介して、サーバー内部に保存されているセッションから取得する。
-
2つの値を比較する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例