[原]Django 403错误:CSRF verific…

本文深入探讨了使用Django框架时遇到的CSRF攻击问题,并提供了详细的解决方法,包括如何正确使用requestcontext,如何在post表单中使用{%csrf_token%}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说明,我的django版本为1.4
解决方法,一共三步,在debug错误信息里面已经指出:
1.使用requestcontext
from django.template import RequestContext
return render_to_response('my_template.html',
                              my_data_dictionary,
                              context_instance=RequestContext(request))

或: c = RequestContext(request, {
        'foo': 'bar',
    }, [ip_address_processor])
    return HttpResponse(t.render(c))
2.使用在post表单中使用{% csrf_token %}标签
<form action="/contact/" method="post">
    {% csrf_token %}
    <p>Subject: <input type="text" name="subject" /></p>
    <p>Your e-main (optional): <input type="text" name="email" /></p>
    <p>Message: <textarea name="message" rows="10" cols="50"></textarea></p>
    <input type="submit" value="Submit" />
</form>
3.setting.py中加入'django.middleware.csrf.CsrfViewMiddleware',
注:浏览器需要接受cookies,第三步如果不执行,则需要在post表单对应视图头部加入@csrf_protect
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值