缓存注册表单(Django)中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(此外,安全漏洞呢?

你应该

使用

@csrf_protect

因为如果使用 cache middleware ,如果缓存可用,渲染更新的上下文将不起作用。这意味着在这种情况下,csrf 不会更新。因此,您需要显式执行csrf_protect才能执行CsrfMiddleWare

最新更新