2011-11-12 2 views
2

최근 내 장고 프로젝트에서 저는 mako 템플릿을 사용합니다.Mako csrf_token은 장고 템플릿과 같습니다.

Cross Site Request Forgery에 대하여 CSRF.

django 템플릿에는 해커로부터 보호 할 태그 {% csrf_token %}이 있습니다.

mako 템플릿이란 무엇입니까? csrf_token의 아날로그가 있습니까? 아니면 다른 보호 메커니즘이 있습니까 ???

감사합니다.

답변

1

댓글로 판단해도 약간의 바이올린이 필요할 수도 있지만이 보이게됩니다. 문제가있는 경우 기본적으로 the Django stock CSRF tag을 복제하려고합니다 (링크를 클릭하고 87 행부터 시작).

+0

당신이 모르는 - 어쩌면 마코는 작업을하지 않아도 ??? 실제로 Mako 문서에서 보안에 관해서 아무 것도 찾을 수 없었습니다 ... –

+2

Mako는 템플릿 언어이며 CSRF가 중지하는 보안 문제는 Mako 대 Django 증권 템플릿 언어 대 Jinja 또는 다른 어떤 것과 관련이 없습니다 선택할 수있는 템플릿 언어. –

3

나는 오늘도 똑같은 문제에 부 닥쳤다. (그래서 나는 여기서 끝났다.) 적어도 내가하고 싶은 일을 위해 해결책을 찾았는데 이는 HTML 데이터를 통해 POST 데이터를 다른보기로 전달하는 것입니다. 여기있다 : 첫 번째보기에서

  1. 하는 CSRF 토큰이 도착하고 (마코) 컨텍스트에 추가 :

    yourtemplate.html의 양식 필드라는 이름이 있어야합니다
    from djangomako.shortcuts import render_to_response as render 
    from django.core.context_processors import csrf 
    
    def first_view(request): 
        """This view generates a form whose action is 'second_view'.""" 
        context = { "csrftoken": csrf(request)["csrf_token"] } 
        return render("path/to/yourtemplate.html", context) 
    
  2. "csrfmiddlewaretoken" 그 값은 "csrftoken"과 같이 컨텍스트에 배치 된 CSRF 토큰입니다.

    <input type="hidden" name="csrfmiddlewaretoken" value="${ csrftoken }" /> 
    

출처 : 마찬가지로 Cross Site Request Forgery protection (Django 1.5 Docs)