您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

禁止(403)CSRF验证失败。请求中止。即使使用{%csrf_token%}

禁止(403)CSRF验证失败。请求中止。即使使用{%csrf_token%}

要使csrf保护起作用,需要做一些事情(请查看docs):

<input type='hidden' name='csrfmiddlewaretoken' value="jdwjwjefjwdjqwølksqøwkop2j3ofje" />

你应该没事的。

另一方面NOTPROVIDED,如果你看到,则在创建csrf令牌时出现了问题。通过查看源代码context_processors.pycsrf.py),我们可以发现:

我认为这意味着None如果未成功创建cookie ,它将返回。

对你来说,这意味着你应该先更换

<form action="/accounts/auth/" method="post" {% csrf_token %}>

<form action="/accounts/auth/" method="post">
{% csrf_token %}
(...)
</form>

我们希望csrf字段位于内部<form>...</form>,而不是内部<form>。由于目前的代码是,它将被转换为

<form action="/accounts/auth/" method="post" <input type='hidden' name='csrfmiddlewaretoken' value='randomchars' />>

我们希望

<form action="/accounts/auth/" method="post">
<input type='hidden' name='csrfmiddlewaretoken' value='randomchars' />

之后-查看源代码,看看是否可以找到csrf字段。如果你能看到它,那么一切都应该在理论上起作用。

你还可以检查浏览器(例如Chrome)中是否设置了csrf cookie,右键单击网页,然后选择Insepect Element。选择Resources选项卡,然后单击cookie。你应该在csrftoken那里找到一个cookie名称

如果仍然有问题,请仔细检查你的中间件元组settings.py并如上所述检查浏览器是否接受来自服务器的cookier。

其他 2022/1/1 18:23:39 有262人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶