[英]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.