ytyng.com

右記投稿者からの投稿を見る September, 2016

Django CSRFトークン認証に失敗する ELB -> Apache2 -> uwsgi

元々は
AWS ELB -> Apache2 -> mod_wsgi という構成だったが、
AWS ELB -> Apache2 -> uwsgi と、Djangoサーバを uwsgi に変えたら、

ログインフォームを送信する時など、django csrf 認証に失敗するようになった。


DEBUG = True で見てみると

アクセス禁止 (403)

CSRF検証に失敗したため、リクエストは中断されました。
Help

Reason given for failure:

    Referer checking failed - https://example.com.com/some-path/ does not match any trusted origins.
    

In general, this can occur when there is a genuine Cross Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure:

    Your browser is accepting cookies.
    The view function passes a request to the template's render method.
    In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL.
    If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data.

You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed.

You can customize this page using the CSRF_FAILURE_VIEW setting.



ELB で HTTPS を受け、Apache には 80 でリクエスト、uwsgi は HTTP プロトコルをリッスンしている(uwsgiプロトコルではない)

Apacheの設定は

ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/

Alias /static/ /var/django/xxxxx/staticfiles/
ProxyPass /static/ !

こんな感じ。

Django のコードを検索してみると

csrf.py

REASON_BAD_REFERER = "Referer checking failed - %s does not match any trusted origins."


こうなっていて、コードを読んで見ると CSRF_TRUSTED_ORIGINS にドメインを入れれば良いっぽい。

CSRF_TRUSTED_ORIGINS = [".example.com"] これで良い

Disqusを使ってる場合、iOS の Twitter アプリでページを表示すると外部サイトリンクに問題あるかも

ブログのコメントシステムに Disqus を使ってる場合

MySQL の 照合順序 utf8_unicode_ci はけっこう遅いのでやめとくべき

まったく定量的な話でないのですが。

最近のツイート

  • ytyng

    ytyng @ytyng

    HIS のベトナムのハロン湾クルーズのガイドさんが天然でシセロ(cv 岩崎ひろし )でクルーズ船内ざわついている。突然ハイテンションで歌い出したり高笑いしたり同じ言葉を連呼したり
    2 日, 15 時間 前

  • ytyng

    ytyng @ytyng

    漫画村閉鎖したので、僕らのサイト使ってくださいね。マンガが無料で読めます。スキマ。まだサーバ負荷には余裕があります! https://t.co/dTjQJZO1TP
    1 週間, 5 日 前

  • ytyng

    ytyng @ytyng

    エンジニアリング組織論への招待 https://t.co/FUqPgcUKWh めっちゃいい本だった。 ただしKindle版とまちがって紙の本が家に届いてて失敗した。
    2 週間, 2 日 前