【问题标题】:Is Varnish compatible with Django Csrf protection?Varnish 与 Django Csrf 保护兼容吗?
【发布时间】:2012-08-26 21:17:45
【问题描述】:

我想把 Varnish 作为一个用 Django 构建的企业网站的前面,以提高它的性能。在网站的每一页上都有一个小的联系我们表格。除此之外,该网站大多是静态的。问题是我不知道如何将 Varnish 与 Django 的 Csrf 保护结合起来。我想同样的问题适用于任何类型的带有 Django csrf 保护的整页缓存。

我想关闭 csrf 中间件是不行的,对吧?

马蒂

【问题讨论】:

    标签: django varnish


    【解决方案1】:

    通常我建议您开始使用Django + Varnish ESI

    如果您只使用整页缓存 - 我建议您使用以下解决方法:

    1. 将表单加载移动到 AJAX 调用(到 POST 请求)
    2. 在您的vcl 文件中,要么只标记lookup 的GET 请求,要么标记hit_for_pass 的POST 请求。

    【讨论】:

    • 你说得对,这些是唯一可行的选择。我认为 Ajax Post 解决方案可能是最容易实现的。表单可以在没有 csrf 令牌的常规 GET 请求中加载和呈现,并且只有当用户决定提交表单时才会向服务器发出请求(通过 Ajax 接收然后用于提交表单的令牌)。
    猜你喜欢
    • 2011-09-11
    • 2020-04-14
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 2018-07-18
    • 2023-04-01
    • 1970-01-01
    • 2012-07-21
    相关资源
    最近更新 更多