是否可以将 django csrf cookie 设置为仅限 http?SESSION_COOKIE_HTTPONLY
类似于会话 cookie,但对于 csrf 呢?
问问题
15536 次
3 回答
26
CSRF_COOKIE_HTTPONLY
Django 1.6+ 中提供了一个新设置。
于 2013-08-27T02:50:36.793 回答
15
对于 Django1.6+,检查接受的答案。对于 Django1.5 和 prev,没有设置选项。
您可以覆盖并使用自定义的process_response()
方法而不是indjango.middleware.csrf.CsrfViewMiddleware
CsrfViewMiddleware
MIDDLEWARE_CLASSES
class Foo(CsrfViewMiddleware):
def process_response(self, request, response):
response = super(Foo, self).process_response(request, response)
response.cookies[settings.CSRF_COOKIE_NAME]['httponly'] = True
return response
CsrfViewMiddleware
或者在响应之后调用的另一个中间件中
class Foo(object):
def process_response(self, request, response):
if settings.CSRF_COOKIE_NAME in response.cookies:
response.cookies[settings.CSRF_COOKIE_NAME]['httponly'] = True
return response
于 2012-06-02T11:22:27.783 回答
1
如果您的版本低于 1.6,您实际上可以自己修补您的 Django 文件以模仿更高版本中存在的功能。
补丁很简单,修改的文件在这里可见:
https://github.com/django/django/commit/720888a14699a80a6cd07d32514b9dcd5b1005fb
您不必担心这些会被升级覆盖,因为升级本身会包含这些行。
于 2016-01-27T23:12:28.903 回答