gpt4 book ai didi

Django CSRF 验证在 POST 请求上失败 : referer checking failed - no Referer

转载 作者:行者123 更新时间:2023-12-03 21:55:26 25 4
gpt4 key购买 nike

我的 Django 网站使用 HTTPS。当我尝试从脚本将数据发布到网站时,出现此错误:“referer 检查失败 - 没有 Referer”。这似乎是一个 CSRF 问题,但我不知道如何解决。

示例:

import requests
r = requests.post('https://mywebsite/mypage', data = {'key':'value'})
print r.text

给我这个输出:

[...]

<p>Reason given for failure:</p>
<pre>
Referer checking failed - no Referer.
</pre>

<p>In general, this can occur when there is a genuine Cross Site Request Forgery, or when
<a
href="https://docs.djangoproject.com/en/1.8/ref/csrf/">Django's
CSRF mechanism</a> has not been used correctly. For POST forms, you need to
ensure:</p>

<ul>
<li>Your browser is accepting cookies.</li>

<li>The view function passes a <code>request</code> to the template's <a
href="https://docs.djangoproject.com/en/dev/topics/templates/#django.template.backends.base.Template.render"><code>render</code></a>
method.</li>

<li>In the template, there is a <code>{% csrf_token
%}</code> template tag inside each POST form that
targets an internal URL.</li>

<li>If you are not using <code>CsrfViewMiddleware</code>, then you must use
<code>csrf_protect</code> on any views that use the <code>csrf_token</code>
template tag, as well as those that accept the POST data.</li>

</ul>

[...]

在发送 POST 数据之前,我是否需要将引荐来源网址传递给我的 header - 这会不方便吗?或者我应该为此页面禁用 CSRF 吗?

谢谢

最佳答案

据我所知,这是 CSRF 的目的,以避免从未知的奇怪来源发布数据。你需要 csrf token 来发布这个 django 动态生成的。

关于Django CSRF 验证在 POST 请求上失败 : referer checking failed - no Referer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36651856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com