Apache、Traefik 和 CSRF 背后的 Django

问题描述 投票:0回答:1

我使用 Cookiecutter Django 作为我的项目的启动器,它使用 Traefik(在 Docker 容器内)使用 Let's Encrypt 生成证书。然而,我的公司强制使用 Apache 作为所有服务器的代理,并且 Apache 服务器的管理由另一个团队负责。

为了适应这一点,我禁用了 Traefik 证书生成,进行了必要的配置更改等。除了 CORS 保护之外,一切都正常运行。我在每个 POST 请求上都遇到了 403 错误,日志显示以下警告:

WARNING 2024-02-09 08:49:15,953 log Forbidden (Origin checking failed - https://example.com does not match any trusted origins.): /accounts/login/

经过调查,我发现添加设置 CSRF_TRUSTED_ORIGINS 解决了我的问题。将

CSRF_TRUSTED_ORIGINS=https://example.com
添加到我的配置文件中解决了该问题。

我的问题是:这种方法被认为不安全吗?

django cors cookiecutter-django
1个回答
0
投票

是的,将

CSRF_TRUSTED_ORIGINS
添加到您的配置文件中并不安全。

CSRF_TRUSTED_ORIGINS
设置用于指定可信任的源列表,这些源可以向 Django 应用程序发出跨站点请求。通过将
https://example.com
添加到您的设置中,您实际上是在告诉 Django 信任来自该特定域的任何请求。

如果您不小心,这可能会很危险,因为攻击者可以创建一个恶意网站,诱骗用户在您的网站上提交表单。

最好避免使用

CSRF_TRUSTED_ORIGINS
,除非你绝对确定你想要它。如果您需要使用它,请确保仅将您信任的来源添加到您的配置文件中。

© www.soinside.com 2019 - 2024. All rights reserved.