Django には、フォームで使用するための一意のセッションごとのトークンを生成するCSRF 保護ミドルウェアが付属しています。すべての受信POST
リクエストをスキャンして正しいトークンを探し、トークンが見つからないか無効な場合はリクエストを拒否します。
一部の POST リクエストに AJAX を使用したいのですが、リクエストには CSRF トークンがありません。ページには<form>
フックする要素がなく、トークンを非表示の値として挿入してマークアップを混乱させたくありません。これを行う良い方法は/get-csrf-token/
、ユーザーのトークンを返すようなビューを公開し、ブラウザーのクロスサイト スクリプティング ルールに依存して、敵意のあるサイトがトークンを要求するのを防ぐことだと考えています。
これは良い考えですか?AJAX リクエストを許可しながら、CSRF 攻撃から保護するためのより良い方法はありますか?