2012-12-03 3 views
5

장고 1.4를 사용합니다. 403.html 파일을 404.html (404 오류 페이지가 정상적으로 작동)과 같은 디렉토리에 생성했습니다. 예, 나는 this을 읽었습니다. 그럼 난 내 브라우저에서 쿠키를 해제하지 내 403.html 페이지를 로그인하고 기본 403 오류 페이지를 참조 해보십시오 장고 403 페이지,

Forbidden (403) 
CSRF verification failed. Request aborted. 
More information is available with DEBUG=True. 

나는 아파치를 다시 시작하지만, 도움이 나던.

문제를 해결하는 방법은 무엇입니까? 감사합니다

답변

8

이것은 기본 403 오류 페이지가 아닙니다. 쿠키를 사용 중지하면 CSRF middleware이 작동하지 않기 때문에이 메시지가 표시됩니다.

CSRF 미들웨어가 일반 403보기를 사용하지 않고 CSRF_FAILURE_VIEW이라는 정의로 정의 된보기 인 is defined in django.conf.global_settingsdjango.views.csrf.csrf_failure으로 사용하므로 사용자 정의 403 템플릿은 아무런 효과가 없습니다. in the source을 보면 알 수있는 메시지가보기에 하드 코드되어 있습니다.

자신 만의 CSRF_FAILURE_VIEW을 만들 수도 있지만 그게 아마도 원하는 것은 아닙니다. 모든 것을 그대로두고 쿠키를 삭제하거나 다른 브라우저를 사용하여 인증되지 않은 사용자로 테스트하는 것이 좋습니다.

+0

사용자가 장애인 룰에 가서 내 페이지 403을 표시 한 경우에만 상황을 제공하고 싶습니다. 즉, [소스] (https://github.com/django)를 변경해야합니다. /django/blob/1.4.2/django/views/csrf.py)? – tim

+2

Django 소스를 변경하지 마십시오! 새보기를 만들고 설정에 CSRF_FAILURE_VIEW를 설정하십시오. 또는 쿠키가 활성화되어 있는지 JavaScript에서 체크인하고 로그인을 비활성화 할 수 있습니다. –