プロキシの背後にあるDjangoシステム(Alfredと呼ぶ)を実行する必要があります。どちらも同じネットワーク上にあります。プロキシとして、私はyuri vandermeerのdjango-httpproxyを使用します。両方のシステムは、両方のシステムが同じ(クローズ)ネットワークでも同じIP上にあるDjangoのバージョン1.2.4プロキシの背後でDjangoのCSRF保護を無効にする方法
を実行している
を(自分のページyvandermeer.netを参照してください)。私は、プロキシをポート8000とポート1337のAlfredで実行しています。彼/ adminサイトを使ってAlfredにログオンする必要があります。これはデフォルトでDjango(そして私が有効にしたもの)です。これはポート1337を介して動作していますが、ポート8000経由でアクセスする必要があります。
私が試してみると、Alfredは403 CSRF Errorを投げていて、私は本当にman-in-the-ミドル( - アルフレッドはそう言っている時に完全に正しい)。
私はAlfreds CSRF保護を無効にするには、いくつかのことを試してみました:
- 私はdisable.pyを作成したとミドルウェアへのdisableCSRFクラスを追加MIDDLEWARE_CLASSES
でsettings.pyにCsrfViewMiddlewareをコメントアウトクラス(実際、私はそれぞれを試してみました[!]の位置)は、このサイト上で述べたように(質問/ 1785772)
#disable.py class DisableCSRF(object): def process_request(self, request): setattr(request, '_dont_enforce_csrf_checks', True)
私はdisable.pyを作成し、そのdisableCSを追加しましたここでは、この他の記事で述べたようにミドルウェアのクラスへのRFクラスが(再び、私はそれぞれの位置を試してみました):http://hi.baidu.com/ledzep2/blog/item/e6b1612e21884c5c4ec2267a.html
#disable.py class DisableCSRF(object): def process_view(self, request, callback, callback_args, callback_kwargs): setattr(request, '_dont_enforce_csrf_checks', True)
を私はジャンゴ/ミドルウェア/ csrf.pyでCSFR保護メカニズムをコメントアウトしようとしましたが、私が見つけましたこのサイトで言及されているように、ライン190の周りの関連する部分は、このサイトで言及された160の周りにはありません:質問/ 1650941/
上記の事柄はどれもうまくいきませんでした。私は/ admin経由でログオンしようとすると、常に403エラーが発生する
AlfredでCSRF保護を無効にするにはどうすればよいですか?/adminのためにそれを無効にすることは可能ですか?私は、2と3で述べたようなミドルウェアでこれを行うことができ、4のようなソースで何かをコメントするのではなく、私が好むと思う。ミドルウェアのような方法があれば、それは素晴らしいだろう。
ありがとうございます! :)
[djproxy](https://github.com/thomasw/djproxy)がおそらくあなたのためのより良い選択肢です。クッキー情報を失うことはなく、設定と使用が簡単です。 – Thomas