【发布时间】:2011-08-21 10:33:47
【问题描述】:
我是 django-piston 的新手,由于 Django 的 CSRF 保护,我无法让 POST 网络服务调用正常工作。如何允许 web 服务调用绕过 CSRF 保护并仍然允许其余网页保留它们?
【问题讨论】:
标签: django django-piston
我是 django-piston 的新手,由于 Django 的 CSRF 保护,我无法让 POST 网络服务调用正常工作。如何允许 web 服务调用绕过 CSRF 保护并仍然允许其余网页保留它们?
【问题讨论】:
标签: django django-piston
找到解决方案:https://bitbucket.org/jespern/django-piston/issue/82/post-requests-fail-when-using-django-trunk,感谢 Brian Zambrano。
我觉得这有点烦人,这是两年前的事,已经创建了一个补丁,但仍然没有合并到最新的源中。
要修复它,通过添加 self.csrf_exempt = getattr(self.handler, 'csrf_exempt', True) 将补丁应用到您的活塞/resource.py 文件,如下所示:
self.handler = handler()
+ self.csrf_exempt = getattr(self.handler, 'csrf_exempt', True)
if not authentication:
self.authentication = NoAuthentication()
【讨论】:
为什么需要这样做? CSRF 是一个简单的域检查......但如果你真的需要它,答案在文档中:https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#csrf-protection-should-be-disabled-for-just-a-few-views
【讨论】: