5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DjangoにてCSRF検証に失敗エラー:テンプレートにcsrf_tokenを追記

Last updated at Posted at 2020-01-31

#CSRF検証とは

###Djangoを用いたページで以下のようなCSRF検証関連のエラーが起きたので、勉強。

アクセス禁止 (403)
CSRF検証に失敗したため、リクエストは中断されました。

##1. CSRFとは
こちらのサイトを参考
https://www.shadan-kun.com/blog/measure/2640/
https://www.trendmicro.com/ja_jp/security-intelligence/research-reports/threat-solution/csrf.html

オンラインサービスを利用するユーザーがログイン状態を保持したまま悪意のある第三者の作成したURLなどをクリックした場合などに、本人が意図しない形で情報・リクエストを送信されてしまうことを意味

ユーザに不正なwebページを送り付け、そこでユーザがログイン情報などをうってPOST送信することでWebサーバーに不正なリクエストを送らせる手法です。

##2. どうする
これは、 POST リクエストの際に「csrfmiddlewaretoken」 というパラメータがリクエストに含まれていない場合に発⽣するエラー。

Django では POST リクエストにCSRF対策を施すことが推奨されている。 そして、POSTリクエストにCSRF対策のためのトークン⽂字列が含まれていない場合にこのような 403 エラーを返す仕組みがデフォルトで⼊っていて、 そのトークンが csrfmiddlewaretoken

**つまり、**テンプレートのformタグに
{% csrf_token%}
を挿入。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?