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

无法禁用Django CSRF框架,这破坏了我的网站

无法禁用Django CSRF框架,这破坏了我的网站

请参阅下面的答案以获得更好的解决方案。自从我写这篇文章以来,发生了很多变化。现在有禁用CSRF的更好方法

我感到你很痛苦。框架更改这种基本功能是不可接受的。即使我想从现在开始使用它,我在同一台计算机上的旧站点也共享django的副本。此类更改应要求对主要版本号进行修订。1.x->2.x。

无论如何,要修复它,我只是将其注释掉,并已停止频繁更新Django。

文件:django / middleware / csrf.py在第160行附近:

            # check incoming token
#            request_csrf_token = request.POST.get('csrfmiddlewaretoken', None)
#            if request_csrf_token != csrf_token:
#                if cookie_is_new:
#                    # probably a problem setting the CSRF cookie
#                    return reject("CSRF cookie not set.")
#                else:
#                    return reject("CSRF token missing or incorrect.")

是的,可以禁用Django csrf框架。

要手动将视图功能排除在任何CSRF中间件的处理之外,可以使用django.views.decorators.csrf模块中的csrf_exempt装饰器。例如:(请参阅doc)

from django.views.decorators.csrf import csrf_exempt                                          
@csrf_exempt                                                                                  
def my_view:                                                                            
    return Httpresponse("hello world")

..,然后{% csrf_token %}从模板中删除表单内部,或者如果未将其包含在表单中,则保持其他内容不变。

Go 2022/1/1 18:14:02 有740人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶