Django 앞 뒤 분리 csrf token 가 져 오기

2350 단어 Djangocsrftoken
수요
일반 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 획득 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기