我在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)此外,安全漏洞怎么样?
答案 0 :(得分:0)
你应该使用
@csrf_protect
因为如果你使用cache middleware
,如果缓存可用,渲染更新的上下文将不起作用。这意味着在这种情况下csrf不会更新。所以你需要明确地执行csrf_protect以执行CsrfMiddleWare