gpt4 book ai didi

python - Django - 403 Forbidden CSRF 验证失败

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:03 24 4
gpt4 key购买 nike

我的网站在 Django 中有一个联系表单,当我在本地测试它时,它工作正常,但现在当我尝试“实时”提交我的联系表单时,它总是出现 403 Forbidden CSRF verification failed。

查看:

def contact(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
cd = form.cleaned_data
send_mail(
cd['subject'],
cd['message'],
cd.get('email', 'noreply@example.org'),
['example@gmail.com'],
)
return HttpResponseRedirect('/thanks/')
else:
form = ContactForm()
return render(request, 'contact/contact.html', {'form': form})

联系人.html

{% extends 'site_base.html' %}

{% block head_title %}Contact{% endblock %}

{% block body %}

<h2>Contact Us</h2>
<p>To send us a message, fill out the below form.</p>

{% if form.errors %}
<p style="color: red;">
Please correct the error{{ form.errors|pluralize }} below.
</p>
{% endif %}

<form action="" method="POST">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<br />
<button type="submit" value="Submit" class="btn btn-primary">Submit</button>
</form>

{% endblock %}

设置(我认为相关的设置):

SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
MIDDLEWARE_CLASSES = [
"django.middleware.csrf.CsrfViewMiddleware",
"django.middleware.common.CommonMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
"django.contrib.messages.middleware.MessageMiddleware",
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

在尝试排除一些事情后,这就是我的发现。当我注释掉 SESSION_COOKIE_SECURE = TRUECSRF_COOKIE_SECURE = TRUESESSION_EXPIRE_AT_BROWSER_CLOSE = TRUE 它没有问题。

如果我只是注释掉 CSRF_COOKIE_SECURE = TRUE 它就可以正常工作。我处理 CSRF 的方式似乎有些奇怪……任何帮助都会很棒。

最佳答案

在我看来,如果您注释掉该行时该网站有效,那么该网站就不是 https 了吗? CSRF_COOKIE_SECURE=True 根据文档 https://docs.djangoproject.com/en/1.7/ref/settings/#csrf-cookie-secure 使 csrf token 使用 ssl

关于python - Django - 403 Forbidden CSRF 验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25954538/

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