我真的需要在Django应用程序视图中免除csrf吗?

2024-09-29 02:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有IdP启动的SSO设置,其中任何浏览https://www.xxxxxx.com的人都将被重定向到https://www.yyyyyy.com,并在成功验证主机yyyyyy.com后将SAML响应发布到回调URL https://www.xxxxxx.com/SAML。在

在网址.py在

url(r'^SAML$', views.index, name='index'),
url(r'^home$', views.home, name='home'),
url(r'^$', RedirectView.as_view(url='https://www.yyyyyy.com', permanent=True)),

在视图.py在

^{pr2}$

在设置.py在

CSRF_TRUSTED_ORIGINS = ['yyyyyy.com']

MIDDLEWARE_CLASSES = [
    'django.middleware.security.SecurityMiddleware',
    'django.middleware.cache.UpdateCacheMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.common.BrokenLinkEmailsMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
]

当我在索引视图上使用csrf_exemptive时,一切都正常,但是如果我删除csrf_exemptive,那么就会出现Cookie Not Set错误。我有两个问题

  1. 我真的需要在索引视图中免除csrf吗?或者有其他推荐的方法吗?在
  2. WhiteNoiseMiddle软件和BrokenLinkEmailsMiddle软件的订购是否正确?在

我使用的是Django==1.9.5和python3.5.1


Tags: djangopyhttpscom视图urlhomewww
1条回答
网友
1楼 · 发布于 2024-09-29 02:23:20

Django检查request.POST(在ajax请求的头中)中的CSRF令牌是否与CSRF cookie匹配。在

对于这个视图,post请求来自不同的域,该域没有通过CSRF检查所需的令牌。因此,您需要对此视图使用csrf_exempt。在

相关问题 更多 >