Django CSRF token missing or incorrect

2019.11.05 10:15Trouble Shooting

Django 에서는 Cross-site request forgery 취약점에 대비하기 위해

CSRF Token을 제공하고 있는데

Django Template Syntax Code로는

{% csrf_token %}

 

위 와 같은 형식으로 작성을 하게 됩니다.

 

하지만 CSRF Token 값이 위/변조되거나 변경 또는 일치 하지 않을 경우

 

CSRF verification failed. Request aborted.

 

라고 오류가 발생되며, CSRF 검증/인증 실패 요청이 중단됨. 이라고 표기가 됩니다.

 

이렇게 CSRF Token이 위/변조를 한 행위가 아닌데도 불구하고 발생하는 이유는 다양하며 크게

 

  - CSRF Token이 일치하지 않을 때

  - POST 전송시 인코딩되지 않은 타입 형식으로 전송될 때

 

 

Django 공식 문서에서는 이를 위해 CSRF Protect 정책이라고 표기하며,

대표적인 방식으로의 사용방법 등 을 표현하고 있습니다.

 

https://docs.djangoproject.com/en/2.2/ref/csrf/

 

Cross Site Request Forgery protection | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

 

 

다 필요 없고 CSRF Protect를 특정 페이지만 사용하고 싶지 않을 경우

urls.py에서 다음과 같이 사용하면 됩니다.

 

참고 자료 : 

https://stackoverflow.com/questions/26639169/csrf-failed-csrf-token-missing-or-incorrect/52782448

 

CSRF Failed: CSRF token missing or incorrect

I'm using Django 1.7 and django-rest-framework. I made an API that returns me some JSON data putting this in my settings.py REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.

stackoverflow.com

 

 

 

TAG