【发布时间】:2015-11-18 01:34:48
【问题描述】:
Django 的 CsrfViewMiddleware 设置“Vary: Cookie”标头,这意味着缓存系统不仅会考虑页面 URL,还会考虑每个用户唯一的用户 Cookie。 因此页面不会为所有用户缓存一次,而是为每个用户缓存一次。就我而言,我的网站加载量很大,但这种行为并不能让我满意。
- 我对这个问题的看法是正确的,还是我错了?
- 我可以在不关闭 CSRF 保护的情况下关闭设置“Vary: Cookie”标头吗?
【问题讨论】:
-
你可以关闭它,但它会产生可怕的后果:通过某个缓存服务器或代理连接的每个用户都将拥有与通过该服务器连接的其他用户相同的 CSRF 令牌。
-
启用
Vary: Cookie基本上可以让任何站点绕过您的CSRF 保护,因为它们与受害者拥有相同的令牌。
标签: django caching cookies csrf-protection