Proxy の背後で Django システム (Alfred と呼びましょう) を実行する必要があります。どちらも同じネットワーク上にあります。プロキシとして、yuri vandermeer の django-httpproxy を使用します。(彼のページ yvandermeer.net を参照)
Django バージョン 1.2.4 を実行している両方のシステム
両方のシステムが同じ (クローズド) ネットワーク内にあり、同じ IP 上にあります。ポート 8000 でプロキシを実行し、ポート 1337 で Alfred を実行しています。デフォルトで Django に付属している (そして有効にした) 彼の /admin サイトを使用して Alfred にログオンする必要があります。これはポート 1337 経由で動作していますが、ポート 8000 経由でアクセスする必要があります。
私が試してみると、Alfred は 403 CSRF エラーをスローし、私は実際には中間者のようなものだと言っています (-そして、Alfred がそう言っているときは完全に正しいです)。
Alfreds CSRF 保護を無効にするために、いくつかのことを試しました。
- MIDDLEWARE_CLASSES の settings.py の CsrfViewMiddleware をコメントアウトしました
このサイト (questions/1785772) に記載されているように、disable.py を作成し、その disableCSRF クラスを MIDDLEWARE CLASSES に追加しました (実際には各 [!] ポジションを試しました)。
#disable.py class DisableCSRF(object): def process_request(self, request): setattr(request, '_dont_enforce_csrf_checks', True)
私はdisable.pyを作成し、そのdisableCSRFクラスをMIDDLEWARE CLASSESに追加しました(再び各ポジションを試しました) 。
#disable.py class DisableCSRF(object): def process_view(self, request, callback, callback_args, callback_kwargs): setattr(request, '_dont_enforce_csrf_checks', True)
django/middleware/csrf.py の Csfr 保護メカニズムをコメントアウトしようとしましたが、このサイトで言及されているように、160 行目ではなく 190 行目で関連する部分が見つかりました: question/1650941/
言及されたものはどれも機能しませんでした。/admin 経由でログオンしようとすると、常に 403 エラーが発生します。
Alfred で CSRF 保護を無効にするにはどうすればよいですか? /admin に対して無効にすることは可能ですか? 4のようにソースで何かをコメントアウトするのではなく、2.と3.で述べたようなミドルウェアでこれを行うことができればいいのですが。ミドルウェアの方法があれば素晴らしいでしょう。
前もって感謝します!:)