djangobook有这个部分
要激活此CSRF保护,请将'django.contrib.csrf.middleware.CsrfMiddleware‘添加到设置文件中的MIDDLEWARE_CLASSES设置中。这个中间件需要在SessionMiddleware之后处理响应,所以CsrfMiddleware必须出现在列表中的SessionMiddleware之前(因为响应中间件是先到后处理的)。
然而,djangoproject页面告诉它的不同
'django.contrib.sessions.middleware.SessionMiddleware',‘django.medileware.csrf.CsrfView中间件’,'django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware',)
现在是有点confusing..Do的CsrfViewMiddleware处理SessionMiddleware后的反应了吗?有人能澄清吗?
发布于 2012-03-30 01:47:02
来自Django的文档:
将中间件“django.middleware.csrf.CsrfViewMiddleware”添加到中间件类列表MIDDLEWARE_CLASSES中。(应该在假定CSRF攻击已经处理过的任何视图中间件之前进行。)
来源:https://docs.djangoproject.com/en/1.4/ref/contrib/csrf/#how-csrf-works
下面是新生成的Django项目(1.3.1)中的中间件列表:
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)因此,是的,Django现在在会话中间件之后处理CSRF中间件。
Django书已经严重过时了--我现在不会用它作为学习Django的资源。另一方面,Django教程是一个很好的资源。
https://stackoverflow.com/questions/9935876
复制相似问题