Django 1.4 を使用すると、CSRF Cookie が断続的に次のようにスクランブルされます。
"Set-Cookie: csrftoken=\"Set-Cookie: csrftoken=WStoUW0COc1JvURmsc0vwRgJ8uCWR5Hh\073 expires=Mon\054 26-Aug-2013 15:24:38 GMT\073 Max-Age=31449600\073 Path=/\""
( WStoUW0COc1JvURmsc0vwRgJ8uCWR5Hh
CSRF cookie の実際の値である ではなく)。
オブジェクトの追加/編集ページを数回リロードした後、それが発生するようです(すべてをテストしたわけではありませんが、カスタムモデルとDjango.authのユーザーで発生します)。その後、削除しても、次の更新でほぼ常に再表示されます。
Cookie の内容はこのバグを非常に連想させますが、
- まったく同じではありません、エスケープがありません
- 修正されているはずで、
- とにかく、Django admin のこのページはキャッシュされません (デフォルトでの admin_view デコレータの使用による追加/編集ページ)
以前は DajaxICE がこれに関係していると思っていましたが、Cookie が間違って設定された後に失敗するため、問題が明るみに出ただけでした。上で示したように、これは DajaxICE をまったく使用していない管理ページで発生します。
更新:これは、これらの2 つの スレッドで議論されている内容にさらに似ていますが、ビューで TemplateResponse を使用する必要があること (Django 管理者のビューの追加を確認してください)、csrf 保護を使用すること (確認すること)、および cache_page を使用すること (または私が想定する少なくともなんらかの形式のキャッシング - add ビューでは確実にそうではありません)。
django_annoying の ajax_request を使用すると、この Cookie が文字化けしていることを気にしないようです (そして、Django 管理者は決して気にしませんでした)。これを修正せずに続行できますが、... なに?! 私が知る限り、これを打破するために必要なのは、サイト全体のキャッシングと管理サイトを使用することだけです。これは少しばかげています...言うまでもなく、Django 管理者が文字化けした Cookie があるという事実を気にしないことは非常に懸念されます。 .