Django带有自定义身份验证后端,是否真的需要Csrf中间件?

时间:2010-03-08 07:35:04

标签: django security csrf

在Django 1.1.1下,我使用了几个身份验证后端,例如social-registration用于facebook连接,django-emailauth用于基于电子邮件的身份验证而不是用户名。

我很好奇Csrf中间件是否是必不可少的安全措施,因为它似乎有时会产生问题,特别是在facebook连接时。

我的项目很简单。每个用户都有一个他们可以填写的个人资料和一个购买页面,他们填写付款以进行购买。这些页面中的任何一个都受@login_required保护。

1 个答案:

答案 0 :(得分:1)

好吧,它可以保护您的网站免受已经登录但已被愚弄(在其浏览器中)的用户的侵害。宁可打开它也会更好。 login_required在这里无关紧要。

至于问题,是的,它可能会导致一些问题。有两种方法可以解决:

  1. 如果您执行ajax请求,django足够智能,可以根据HTTP标头关闭保护,基本上任何ajax库的请求都应该通过。

  2. 如果标题无法帮助您,请在您的视图中添加csrf_exempt装饰器。

  3. 底线:在你的观看次数上使用csrf并为facebook等禁用它。