2010-10-25 3 views
5

У меня есть немного сумасшедшая/беспричинная ошибка с сайтом и CSRF.Прерывистый 403s из-за отказа CSRF (Django 1.2.3)

Мы запускаем Django 1.2.3, Python 2.6 на Ubuntu с Apache2 + mod_wsgi и получаем конечные пользователи, которые сообщают о 403 ошибках проверки CRSF и 403s в результате.

Все наши формы имеют csrf_token и - насколько мне известно - все хорошо работает в локальных девелоперах и на сцене (мы еще не в производстве) ... кроме одного офиса (клиент, natch). В случайных случаях они получат такой 403, но затем обновятся, и он исчезнет (так что это не HTML, у которого нет токена и т. Д.)

Я размышляю о причинах и решениях, и может быть, что это у офиса есть дьявольски чрезмерно нетерпеливый или плохо настроенный кэш прокси или аналогичный, и по достоинству оценят некоторые подсказки о том, что мы можем сделать, в способе Django/Apache, чтобы иметь дело с чрезмерными прокси (офис клиента, вероятно, выиграл изменить их настройку) или что еще может привести к сбою этих CSRF.

BTW: это был 1.2.3 проект с нуля, а не какой-того 1.1 обновления, и мы используем/правильно 1.2.3 CsrfMiddleware и вручную добавлено csrf_tokens только одного стандарта - не CsrfResponseMiddleware автоматически включать csrf_token

Также: это произошло на двух отдельных серверах (сервер dev и промежуточном сервере), которые размещаются в разных местах. Общими факторами являются (теоретически) те же настройки Django/Apache/mod_wsgi, одна и та же база данных и тот же офис, который получает 403s (и не может копировать 403 в нашем собственном месте).

ответ

2

просто обновление в случае, если это кому-то поможет.

Мы отбросили защиту CRSF для проверки (используя http://johnmc.co/llum/disable-csrf-protection-for-django-1-2/). Это очистило 403s, но тогда у нас были прерывистые 500s для данных POST с нулевой длиной из одной и той же клиентской/локальной сети, что объясняло, что CSRF не удалось, поскольку токен присутствовал в сеансе, но не в полезной нагрузке (а не в другой способ вокруг).

Таким образом, это была не проблема CSRF, а проблема POST-полезная-получающая-заглушенная-где-то проблема. (Скорее всего, с помощью прокси-сервера при неправильной конфигурации только в одном месте)

НТН

Стив

 Смежные вопросы

  • Нет связанных вопросов^_^