Запрещено 403: Ошибка проверки CSRF в Firefox, а не в Chrome - PullRequest
0 голосов
/ 22 мая 2018

У меня есть веб-страница с более чем 1 формой с POST.Я включил {% csrf_token%} в каждую из форм.

<form class="form-horizontal clearfix" role="form" id="Form1" method="post"> {% csrf_token %}

На мой взгляд, я использовал декораторы ботов sure_csrf_cookie и csrf_protect

@ensure_csrf_cookie
@csrf_protect
@operation('monitor')
def monitor(request, **kwargs):

Первый запрос POST выбирает некоторые детали из бэкэнда и отображает их в пользовательском интерфейсе.После этого у пользователя запрашиваются некоторые данные, а затем отправляется вторая форма.

В Firefox: при первой загрузке страницы и после первого сообщения csrftoken равен X. Для запроса второго сообщения такжеcookie csrftoken - это то же самое.Но как только выдается ошибка, файл cookie csrf изменяется на другое значение.Если я обновлю страницу после этого, csrftoken останется прежним, и если я отправлю запрос снова, он выполнится успешно.Я также проверил, что форма имеет скрытое значение csrfmiddlewaretoken.Это соответствует cookie.Я не вижу 404 для favicon, когда страница загружена.Это было там раньше.Но я исправил это, и хром начал работать.

В chrome: это работает.

Есть какие-нибудь указатели о том, как решить эту проблему?

1 Ответ

0 голосов
/ 31 мая 2018

Это была favicon.ico не найденная ошибка.Я добавил это в свой base.html.

<link rel="shortcut icon" type="image/png" href="{% static "tools/ico/favicon.ico" %}"/>

Ссылка: https://code.djangoproject.com/ticket/28488#comment:22

...