본문 바로가기

프로그래밍/Python

장고[Django] 암호화 인증키 지정 csrf_token

장고 프로젝트 진행시 HTML페이지에서 Get 또는 POST 방식으로 Form에서 파라미터를 전달 할 때 전달된 비 인가된 외부 접근을 방지하기 위한 코드를 삽입 시킬 수 있다.

반드시 <FORM> 태그 아래에 다음 코드를 삽입하기만 하면 된다.

{% csrf_token %}

이 코드는 크로스도메인(Cross-Domain) 이슈에 대한 처리 방법중 하나이다.

장고 프로젝트에서는 반드시 써주어야 함(안써줄 경우 기본 Activate 되어 있기 때문에 오류 발생)

적용 Sample

 

크로스도메인(Cross-Domain) 이슈

  Javascript 는 동일 출처 정책(Same Origin Policy) 라는 정책을 두어 다른 도메인의 서버에 요청하는 것을 보안 문제로 간주하고 이를 차단

 


<div class="container">
        <div class="row mt-5">
            <div class="col-12 text-center">
                <h1>회원가입</h1>
            </div>
        </div>
        <div class="row mt-5">
            <div class="col-12">
                <form method="POST" action="">
                    {% csrf_token %}
                    <div class="mb-3">
                        <label for="username" class="form-label">사용자이름</label>
                        <input type="text" class="form-control" id="username" aria-describedby="emailHelp"
                            placeholder="사용자 이름">
                    </div>
                    <div class="mb-3">
                        <label for="password" class="form-label">비밀번호</label>
                        <input type="password" class="form-control" id="password" placeholder="비밀번호">
                    </div>
                    <div class="mb-3 form-check">
                        <input type="checkbox" class="form-check-input" id="exampleCheck1">
                        <label class="form-check-label" for="exampleCheck1">등록</label>
                    </div>
                    <button type="submit" class="btn btn-primary">Submit</button>
                </form>
            </div>

        </div>
    </div>