Джанго https + CSRF - PullRequest
       33

Джанго https + CSRF

1 голос
/ 15 августа 2011

Я пытаюсь настроить работу сайта django или https с защитой csrf. Работает на сервере nginx.

nginx работает на https, и мое приложение django успешно обслуживает запросы GET. когда я пытаюсь сделать почтовый запрос, он не работает с

Forbidden (403)

CSRF verification failed. Request aborted.

CSRF cookie not set.

Я установил

fastcgi_param HTTPS on;

в settings.py

SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True

но результатов нет. Есть какие-нибудь идеи?

UPDATE! Теперь я пытаюсь работать с моим приложением django и http с nginx, и у меня та же проблема, поэтому https не имеет смысла. Как мне начать работать с nginx ower http и использовать защиту csrf?

UPDATE! И РЕШЕНИЕ! sure_csrf_cookie - декоратор для принудительной отправки токена csrf на запрашиваемую страницу. это помогает мне, потому что мое приложение работает в основном с ajax POST и GET, которые не используют теги.

1 Ответ

3 голосов
/ 15 августа 2011

Я полагаю, вам нужен либо тег csrf внутри вашего HTML-шаблона,

<form action="" method="post">{% csrf_token %}

или декоратор над вашим методом просмотра ...

@csrf_protect
def my_view(request):

Читайте здесь: https://docs.djangoproject.com/en/dev/ref/contrib/csrf/

...