缓存注册表单中的CSRF相关问题的可能性(Django)

时间:2017-05-29 11:28:01

标签: django caching csrf

我在Django项目中有一个注册页面,我已经缓存了(在视图上使用@cache_page(600))。在页面本身,我正在测试一个简单的表单:

<form method="POST" action="{% url 'sign_up' %}">
  {% csrf_token %}
  Nickname:{{ form.username }}<br>
  Password:{{ form.password1 }}<br>
  Password (repeat):{{ form.password2 }}<br>
  <input class="btn bcg bs mlt mbs" type="submit" value="OK">
</form>

1)缓存此类页面是否也会缓存CSRF令牌?

2)如果确实如此,那会对用户以任何方式注册产生有害影响吗?

3)此外,安全漏洞怎么样?

1 个答案:

答案 0 :(得分:0)

你应该使用

@csrf_protect

因为如果你使用cache middleware,如果缓存可用,渲染更新的上下文将不起作用。这意味着在这种情况下csrf不会更新。所以你需要明确地执行csrf_protect以执行CsrfMiddleWare