CSRF 토큰

CSRF란 사이트 간 요청 위조(Closs-site request forgery)라는 웹사이트 취약점 공격 중 하나를 의미한다. 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록)를 특정 웹사이트에 요청하는 것이다.

옥션의 1800만명 개인 정보 유출 사고는 CSRF 공격의 대표적인 사례이다. 당시 중국 해커는 서버를 공격하는 것이 아니라 옥션 운영진을 대상으로 악성 코드를 첨부한 메일을 전송했는데, 이를 통해서 공격을 감행했다.

보통 우리는 정보 탈취를 막기 위해서 GET 방식이 아닌 POST 방식의 통신을 사용한다. 하지만 위와 같은 CSRF 공격을 이용하면 POST 방식도 안전하지 않다. 그러므로 POST방식을 더욱 안전히 사용하기 위해서는 CSRF에 대응할 수 있는 방안이 필요한 것이다.

CSRF 공격 대처방안 = CSRF 토큰

    <form action="" method="post">
    {% csrf_token %}
    ...

django는 이러한 CSRF 공격을 막기위해서 CSRF 토큰이라는 것을 사용한다.
사용하는 방법은 POST 방식으로 데이터를 전송하는 템플릿 폼에 {% csrf_token %}을 써주기만 하면 된다.


Last update : 4 juin 2023
Created : 19 février 2020