django CSRF 보호(Forbidden 403 방지)

1846 단어
django의 중간부품을 이용하여 CsrfView Middleware,settings에서 설정
MIDDLEWARE_CLASSES = (     'django.middleware.common.CommonMiddleware',     'django.contrib.sessions.middleware.SessionMiddleware',     'django.middleware.csrf.CsrfViewMiddleware',     'django.contrib.auth.middleware.AuthenticationMiddleware',     'django.contrib.messages.middleware.MessageMiddleware',     # Uncomment the next line for simple clickjacking protection:     # 'django.middleware.clickjacking.XFrameOptionsMiddleware', )
템플릿에 설정
{% csrf_token %} {{ form.as_p }}

views 처리
@csrf_protect def login(request):     msg = ''     if request.method == 'POST':         form = loginform.LoginForm(request.POST)         if request.session.test_cookie_worked():             request.session.delete_test_cookie()             if request.POST.get('uname', '') == 'shuifa':                 if form.is_valid (): return Http Response('your are login') else: msg = u'불합격'else: return Http Response('uname wrong') else: Http Response('please enable the cookie settings') else: form = loginform.LoginForm()     request.session.set_test_cookie()     # return render_to_response('fage/login.html', {'form':form, 'msg':msg}) #not work     return render(request, 'fage/login.html', {'form':form, 'msg':msg})
return render 를 사용할 수 없음to_response('fage/login.html', {'form':form,'msg':msg}) 그렇지 않으면 다음과 같은 오류가 발생합니다.
Forbidden (403) CSRF verification failed. Request aborted.
힌트 오류 원인은 다음과 같습니다. The view function usesRequestContext for the template, instead ofContext.

좋은 웹페이지 즐겨찾기