新增帳號組權限時,保存後遇到CSRF 禁止
重现步骤
Hi 大大
這邊將Archery 服務器放在AWS EC2上,並掛在AWS ALB , 將ALB 做CNAME 解析成二級域名
但在新增帳號組的權限時,保存後遇到CSRF 禁止,在網路上找過方法,登入到archery 容器路徑底下/opt/archery/archery/setting.py ,註解掉以下參數,重新啟動後,發現還是一樣出現CSRF 禁止
django.middleware.csrf.CsrfViewMiddleware
Archery 版本:v1.11.3 OS: Ubuntu 24.04 LTS
预期外的结果
日志文本
[2024-09-18 09:58:30 +0800] [15] [INFO] Using worker: sync
[2024-09-18 09:58:30 +0800] [16] [INFO] Booting worker with pid: 16
[2024-09-18 09:58:30 +0800] [17] [INFO] Booting worker with pid: 17
[2024-09-18 09:58:31 +0800] [18] [INFO] Booting worker with pid: 18
[2024-09-18 09:58:31 +0800] [19] [INFO] Booting worker with pid: 19
2024-09-18 09:58:31,342 - environ.environ - INFO - /opt/archery/.env not found - if you're not configuring your environment separately, check this.
2024-09-18 09:58:31,360 - environ.environ - INFO - /opt/archery/.env not found - if you're not configuring your environment separately, check this.
2024-09-18 09:58:31,494 - environ.environ - INFO - /opt/archery/.env not found - if you're not configuring your environment separately, check this.
2024-09-18 09:58:31,660 - environ.environ - INFO - /opt/archery/.env not found - if you're not configuring your environment separately, check this.
2024-09-18 11:34:43,001 - django.security.csrf - WARNING - Forbidden (Origin checking failed - https://archery-v2.ha-fintech.com does not match any trusted origins.): /admin/auth/group/13/change/
版本
v1.11.3
部署方式
Docker
是否还有其他可以辅助定位问题的信息?比如数据库版本等
MySQL: 8.0.39 Browsers: Chrome
請問大大,有解決辦法嗎?
還是只能坐等版本更新?
有条件的话开一下debug,看一下详情,csrf更多的还是django和代理的问题,你需要排查一整条链路上的代理,看最后给到django app 的请求是怎么样的,这样来看哪里出了问题。
Hi LeoQuote 大大 , 謝謝回覆
這裡開啟Debug ,再去archery容器底下的/opt/archery/logs/archerys.log 觀察,有出現一些錯誤訊息,不知道是不是跟csrf有關?上面django.contrib.messages.middleware.MessageMiddleware , 這邊看setting 也只有註解掉跟csrf有關的參數,在請大大指導是否還有其他方向能解決,謝謝。
这个无关, 建议还是多看一下CSRF 的相关文档, 这个更多的还是 django 问题而不是 archery 问题, 因为我也没有环境去复现, 所以我暂时没法帮到你
Hi LeoQuote 大大 , 謝謝回覆
這裡開啟Debug ,再去archery容器底下的/opt/archery/logs/archerys.log 觀察,有出現一些錯誤訊息,不知道是不是跟csrf有關?上面django.contrib.messages.middleware.MessageMiddleware , 這邊看setting 也只有註解掉跟csrf有關的參數,在請大大指導是否還有其他方向能解決,謝謝。
我也遇到了类似报错,
我的解决办法如下,你可以参考下
附加:docker-compose.yaml