4

私は、HTTPS プロトコルを使用するサーバーで適切に動作する Django サイトを持っています。すべての種類のブラウザーで問題なく使用できます。

問題は、テキスト ブラウザを使用しようとするたびに、

禁じられた (403)

CSRF verification failed. Request aborted.

You are seeing this message because this HTTPS site requires a 'Referer header' to be sent by your Web browser, but none was sent.
This header is required for security reasons, to ensure that your browser is not being hijacked by third parties.

If you have configured your browser to disable 'Referer' headers, please re-enable them, at least for this site, or for HTTPS
connections, or for 'same-origin' requests.

Help

Reason given for failure:

    Referer checking failed - no Referer.

私はリンク、lynx、さらにはemacsでw3mとelwを試しましたが、役に立ちませんでした。

HTTP サイトを使用する場合 (manage.py runserver を使用する場合など)、テキスト ブラウザーでサイトを問題なく使用できますが、実稼働サーバーには HTTPS プロトコルが必要なため、このエラーが発生します。

[ 編集: テスト目的で、django サイト用の HTTP サーバーを運用サーバーにデプロイしました。テキストブラウザでうまく動作します... ]

[編集: サーバーがスローするメッセージを考えると、Referer ヘッダーが指定されていないのはなぜですか? ]

4

2 に答える 2

1

Lynx は、Referer ヘッダーを送信しないように構成されている可能性があります。/etc/lynx.cfg で "REFERER" を確認します。

などの記載がありますNO_REFERER_HEADER。false に設定されていることを確認します。そうでない場合は、その構成で他の無効なリファラーヘッダーを確認してください。

関連して、CSRF と Referer ヘッダーの議論: https://code.djangoproject.com/ticket/16870

于 2015-03-31T19:03:14.380 に答える
0

設定で SECURE_PROXY_SSL_HEADER、SESSION_COOKIE_SECURE、および CSRF_COOKIE_SECURE を設定していますか?

https://docs.djangoproject.com/en/1.7/topics/security/#ssl-https

于 2015-03-30T21:34:30.457 に答える