我在我缓存的 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