Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2010 21:46:45

gibson191
От:
Зарегистрирован: 2010-07-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

CSRF verification

Ета тема уже поднималась тут, но вынужден поднять ее еще раз, так как не могу понять где натупил.

Код функции:

from django.shortcuts import render_to_response
from django.template import RequestContext

def testform(request):
return render_to_response('test.html',{'name':request.POST['login'],'pass':request.POST['password']},context_instance=RequestContext(request))
Код шаблона с формой:
<form action="/test" method="post">{% csrf_token %}
{{form.login}}<br/>
{{form.password}}<br/>
<input type="submit" value="submit">
</form>
В Middleware добавлен django.middleware.csrf.CsrfViewMiddleware он по умолчанию уже есть.
При отправке формы выводит :
CSRF verification failed. Request aborted.
Reason given for failure:
CSRF token missing or incorrect.



Офлайн

#2 Окт. 6, 2010 09:25:44

tmt
От:
Зарегистрирован: 2010-03-26
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

CSRF verification

Не знаю какая у вас версия django, но, если до версии 1.2
попробуйте добавить django.middleware.csrf.CsrfResponseMiddleware в список мидлваре

И почитайте здесь: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#



Отредактировано (Окт. 6, 2010 09:38:17)

Офлайн

#3 Окт. 6, 2010 10:34:03

gibson191
От:
Зарегистрирован: 2010-07-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

CSRF verification

Django Версии 1.2 но ваш совет помог, после добавления ‘django.middleware.csrf.CsrfResponseMiddleware’ все работает ! Спаисбо.



Офлайн

#4 Окт. 6, 2010 11:01:33

tmt
От:
Зарегистрирован: 2010-03-26
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

CSRF verification

Хорошо что работает, но это устаревший метод.

“…Use of the CsrfResponseMiddleware is not recommended because of the performance hit it imposes, and because of a potential security problem (see below).
It can be used as an interim measure until applications have been updated to use the csrf_token tag. It is deprecated and will be removed in Django 1.4…”

Рекомендую пересмотреть линк http://docs.djangoproject.com/en/dev/ref/contrib/csrf/# и переделать как надо. =)



Офлайн

#5 Окт. 6, 2010 12:39:07

gibson191
От:
Зарегистрирован: 2010-07-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

CSRF verification

Так в том и дело, что все по докам, код я привел, форму все равно не отправляло. Доделаю сайт, потом поправлю такие моменты.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version