본문 바로가기
python/Django

Django CSRF에 대하여

by dorlback 2023. 8. 8.
반응형

안녕하세요! 장고 CSRF를 다루는 매력 넘치는 주제로 함께 떠나볼게요! 

😃 이 글에서는 CSRF가 뭔지부터, 장고에서 어떻게 제어하는지까지 다룰 거예요. 그럼 바로 시작해볼까요?

 

CSRF가 뭐에요? 🤔

CSRF, 즉 Cross-Site Request Forgery란 사용자가 자신의 의도와는 다르게 공격자에 의해 특정 웹 어플리케이션에서 비정상적인 요청을 하게 만드는 공격 방식이에요. 사용자가 로그인한 상태에서 이런 공격을 당하면 치명적일 수 있답니다!

 

장고에서 CSRF를 어떻게 다룰까요? 🔐

장고는 CSRF 공격을 방어하기 위한 강력한 도구를 제공해요. 이제 장고에서 CSRF를 어떻게 제어하는지 알아볼게요!

 

1. 미들웨어 활성화하기

장고 프로젝트 설정 파일에서 'django.middleware.csrf.CsrfViewMiddleware'를 미들웨어에 추가하면 되요.

MIDDLEWARE = [
    # ...
    'django.middleware.csrf.CsrfViewMiddleware',
    # ...
]

 

2. 템플릿 태그 사용하기

장고 템플릿에서는 {% csrf_token %} 태그를 사용해 CSRF 토큰을 자동으로 포함시킬 수 있어요.

<form method="post">
    {% csrf_token %}
    <!-- 나머지 폼 필드 -->
</form>

 

3. Ajax 요청 다루기

자바스크립트를 사용한 Ajax 요청 시에도 CSRF 토큰을 함께 보내줘야 해요. 쿠키에서 토큰을 읽어와서 요청 헤더에 포함시키면 돼요.

var csrftoken = Cookies.get('csrftoken'); // 토큰 읽어오기
$.ajax({
    url: "/example/",
    type: "POST",
    headers: { "X-CSRFToken": csrftoken }, // 헤더에 토큰 추가
});

 

마치며 🎉

장고의 CSRF 제어는 간단하면서도 강력해요! 보안에 더 신경쓰면서 멋진 웹사이트를 만드세요. ~

728x90