繁体   English   中英

Django:CSRF令牌缺失或不正确。 /避免{%csrf_token%}

[英]Django: CSRF token missing or incorrect. / avoid {% csrf_token %}

我正在遵循Django指南“向我展示”。 但是我有一个问题:

如果我只复制他的代码,

禁止(403)CSRF验证失败。 请求中止。

我通过将context_instance = RequestContext(request)添加到所有“我的” return render_to_response并通过将{%csrf_token%}添加到我正在调用的表单中来解决了这个问题。

问题来了:我可以通过任何方式将其设置为在“幕后”调用,还是必须将其添加到我的所有表单中!

詹斯

CSRF是AFAIK的重要安全概念。

您必须将csrf_token [这将设置一个隐藏的post参数]设置为所有使用post,put或delete请求的表单,或者也可以使用X-CSRFToken标头。 您可以默认使用render快捷方式而不是render_to_response来包含RequestContext 看到:

https://docs.djangoproject.com/en/dev/ref/contrib/csrf/

通过删除middleware或使用decorator可以完全避免CSRF检查。 但是我建议不要这样做。

是的,您可以使用render(request, template, context)而不是render_to_response render快捷方式自动使用RequestContext。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM