2010-12-01 21 views
5

Estoy probando la protección CSRF en mi sitio y he notado algo inesperado.¿Todavía es necesaria la etiqueta de protección {% csrf_token%} CSRF en Django 1.2?

He eliminado {% csrf_token %} de mi formulario y la presentación todavía funciona. No pude entender por qué. Luego miré la fuente y me di cuenta de que el token todavía estaba allí junto al elemento <form>. Cambié la identificación del formulario para asegurarme de que definitivamente estaba actualizando la fuente y lo estaba, pero la entrada oculta aún está allí.

Estoy usando Django 1.2. ¿Todavía es necesario {% csrf_token %}?

Saludos

ricos

+1

Después de más investigaciones, parece que siempre se inserta {% csrf_token%} si el formulario tiene el método 'post' y no si no lo hace. Muy inteligente Django. Protección automática – Rich

+0

publica eso como respuesta y acéptalo (es posible que tengas que esperar 24 horas antes de poder aceptar tu propia respuesta). –

Respuesta

4

Después de más investigación se desprende la {% csrf_token %} se inserta siempre si el formulario tiene post método y no si no lo hace. Protección auto muy inteligente de Django.

+1

Creo que esto solo tiene lugar si agrega 'django.middleware.csrf.CsrfResponseMiddleware' a sus clases de middleware. Ya no es recomendado. Ver http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#legacy-method –

Cuestiones relacionadas