首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSRF不适用于接触式- Django

CSRF不适用于接触式- Django
EN

Stack Overflow用户
提问于 2021-04-26 15:42:13
回答 1查看 153关注 0票数 0

对于contactform还是使用来自Django的send_mail函数的表单,使用CSRF是否安全?

因此,根据医生的意见;

针对CSRF攻击的第一个防御措施是确保GET请求(以及RFC 7231#节-4.2.1定义的其他“安全”方法)没有副作用。

一个帖子请求,它只创建一个电子邮件消息,不触及数据库,是否被认为是一种“安全”的方法?

示例代码

代码语言:javascript
复制
from django.core.mail import BadHeaderError, send_mail
from django.http import HttpResponse, HttpResponseRedirect

def send_email(request):
    subject = request.POST.get('subject', '')
    message = request.POST.get('message', '')
    from_email = request.POST.get('from_email', '')
    if subject and message and from_email:
        try:
            send_mail(subject, message, from_email, ['admin@example.com'])
        except BadHeaderError:
            return HttpResponse('Invalid header found.')
        return HttpResponseRedirect('/contact/thanks/')
    else:
        # In reality we'd use a form class
        # to get proper validation errors.
        return HttpResponse('Make sure all fields are entered and valid.')

*文档中的示例

我只是在想,在我加入CSRF豁免之前,我是否遗漏了一些东西。现在我听到你在想,为什么有人想要禁用CSRF验证?

在欧盟,我们必须遵守探地雷达。通过设置cookie,我们需要显式地要求用户接受cookie,如果可以阻止设置cookie,则不需要显示cookie提示符;)

EN

回答 1

Stack Overflow用户

发布于 2021-04-26 16:40:54

当您应用csrf_excempt装饰器时,您是说来自任何地方的任何人都可以对您的视图发布帖子,您正在禁用django提供的验证,当站点中的任何人在浏览器中加载联系人表单时,他们可能无法对数据库做任何事情,但是他们可以在没有加载表单视图的情况下从任何地方向您的admin@example.com帐户发送垃圾邮件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67269704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档