Django 앞 뒤 분리 csrf token 가 져 오기
일반 Django 개발 은 csrf 의 공격 을 피하 기 위해 Django 의 템 플 릿 렌 더 링 페이지 를 사용 하면 요청 에 csrftoken 의 쿠키 데 이 터 를 렌 더 링 할 수 있 습 니 다.그러나 앞 뒤 분리 가 필요 하 다 면 Django 의 템 플 릿 렌 더 링 기능 이 적용 되 지 않 습 니 다.csrftoken 을 어떻게 동적 으로 가 져 옵 니까?
Django 가 request 요청 을 통 해 csfttoken 을 가 져 오 는 방법
from django.middleware.csrf import get_token
def getToken(request):
token=get_token(request)
return HttpResponse(json.dumps({'token':token}), content_type="application/json,charset=utf-8")
이런 방식 을 사용 하면 csrftoken 의 데 이 터 를 확실히 얻 을 수 있 습 니 다.다음은 예 시 를 써 서 보 여 드 리 겠 습 니 다.Django 백 엔 드 csrftoken 예제 가 져 오기
보기 view.py 에 getToken 설정 방법
from django.middleware.csrf import get_token
# cstftoken
def getToken(request):
token = get_token(request)
return HttpResponse(json.dumps({'token': token}), content_type="application/json,charset=utf-8")
URL 설정
from django.urls import path, re_path
from . import views
urlpatterns = [
# ex:/assetinfo/getToken
path('getToken', views.getToken, name='getToken'),
...
]
테스트 인 터 페 이 스 를 사용 하여 csrftoken 가 져 오기현재 기본 기능 이 완성 되 었 습 니 다.csrftoken 을 동적 으로 가 져 올 수 있 습 니까?하지만 도 메 인 을 넘 으 면 csrftoken 을 가 져 올 수 없습니다.
Django 에서 도 메 인 을 뛰 어 넘 는 방식 을 설정 해 보 았 지만,이것 은 안 됩 니 다.도 메 인 이름 에 따라 csrftoken 을 사용 하면 csrf 공격 을 방지 하 는 의 미 를 거의 잃 게 됩 니 다.
가장 좋 은 방법 은 nginx 를 사용 하여 이 컴퓨터 의 대 리 를 하 는 것 입 니 다.각각 프 록 시 전단,백 엔 드 의 서 비 스 를 반대 한 다음 에 도 메 인 이름 을 통일 적 으로 제공 하면 csrftoken 을 사용 할 수 있 습 니 다.
postman 설정 에 csrftoken 사용 하기
postman 에서 csrftoken 을 사용 하려 면 가 져 온 csrftoken 값 을 Headers 에 설정 하면 됩 니 다.다음 과 같 습 니 다.
{"X-CSRFToken":"K6q7uqt9J8UocELWR04pw2DKd8T2LRNWjf2uQvsFBWm87Q1lJZQV1vj3pR8REzCR"}
설정 하지 않 으 면 403 오류 가 발생 합 니 다.Django 전후 단 분리 csrf token 획득 방식 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Django csrf token 획득 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.