Мне нужно запустить систему Django (назовем ее Альфред) за прокси.Оба находятся в одной сети.В качестве прокси я использую django-httpproxy Юрия Вандермера.(см. его страницу yvandermeer.net)
Обе системы работают под управлением Django версии 1.2.4
Обе системы находятся в одной (закрытой) сети и также на одном и том же IP.У меня есть прокси-сервер, работающий на порту 8000 и Альфред на порту 1337. Мне нужно войти на Альфреда, используя его / admin сайт, который поставляется по умолчанию с Django (и который я включил).Это работает через порт 1337, но мне нужно получить к нему доступ через порт 8000.
Когда я пытаюсь это сделать, Альфред выдает ошибку CSRF 403 и говорит мне, что я действительно что-то вроде человека-человека.the-middle (- и Альфред совершенно прав, говоря так).
Я попытался несколько вещей, чтобы отключить защиту Alfreds CSRF:
- Я прокомментировал CsrfViewMiddleware в настройках.py в MIDDLEWARE_CLASSES
Я создал disable.py и добавил его класс disableCSRF в MIDDLEWARE CLASSES (на самом деле я пробовал каждую позицию [!]), как указано на этом сайте (questions / 1785772)
#disable.py
class DisableCSRF(object):
def process_request(self, request):
setattr(request, '_dont_enforce_csrf_checks', True)
Я создал disable.py и добавил его класс disableCSRF к КЛАССАМ СРЕДНЕГО ОБЕСПЕЧЕНИЯ (снова я попробовал каждую позицию), как упомянуто в этом другом посте здесь: 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)
Я пытался закомментировать механизм защиты Csfr в django / middleware / csrf.py, но нашел соответствующую часть вокруг строки 190, а не вокруг строки 160, как упомянуто наis site: questions / 1650941 /
Ничего из перечисленного не сработало.Я всегда получаю сообщение об ошибке 403 при попытке войти через / admin
Как отключить защиту CSRF на Альфреде?Можно ли просто отключить его для / admin?Я бы предпочел, чтобы я мог сделать это с помощью промежуточного программного обеспечения, как упомянуто в 2. и 3., а не путем комментирования чего-либо в источнике, как в 4. Если есть промежуточное программное обеспечение, это было бы здорово.*заранее спасибо!:)