`Referrer-Policy: no-referrer` breaks `/_logout`?
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 45/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- haskell, nginx
调研方向
从 src/Network/Gitit/Authentication.hs 第 404-415 行附近开始,并在 nginx 后面使用 Referrer-Policy: no-referrer 重现 logout 流程。跟踪缺失的 Referer 是如何处理的;完成的标准是:未发送 Referer 时,/_logout 不再重定向到自身,同时保持现有的 logout 重定向行为不变。
由索引模型根据 Issue 内容生成。
描述
I have Debian 12 with gitit 0.15.1.0+dfsg-2+b6 and nginx 1.22.1-9 (doing proxy_pass http://127.0.0.1:5001/).
I was messing with https://infosec.mozilla.org/guidelines/web_security.html#referrer-policy
I found that with add_header Referrer-Policy no-referrer always; in nginx.conf,
when I tried to logout, the /_logout URL returned a 303 redirect back to itself.
This happened over and over until Firefox reached a redirect limit.
It looks like add_header Referrer-Policy same-origin always; does not exhibit this issue.
I think if there is no Referer, _logout should redirect to / rather than itself?
I looked at
https://github.com/jgm/gitit/blob/0.15.1.0/src/Network/Gitit/Authentication.hs#L404-L415
but I'm not immediately sure what ought to go in the dest <- to implement "there is no referer".
This is a weird edge case, so I don't mind if you just say "so, don't do that" and close this ticket :-)
- 主要语言
- Haskell
- 星标
- 2.3k
- 派生
- 231
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
jgm/gitit 的其他 Issue
-
难度 4/5 3-5 天 新手友好度 35/100
-
难度 5/5 一周以上 新手友好度 25/100
-
难度 2/5 1-3 小时 新手友好度 25/100
-
难度 5/5 一周以上 新手友好度 35/100
-
难度 3/5 1-2 天 新手友好度 35/100
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 82/100
alunduil/siren-json.hs#233 ·
维护者通常 1 天内回复
-
bug
难度 1/5 1 小时以内 新手友好度 84/100
alunduil/network-arbitrary#180 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 88/100
-
难度 2/5 1-3 小时 新手友好度 68/100
jgm/asciidoc-hs#14 ·
-
major-release strictness Tree
难度 2/5 1-3 小时 新手友好度 72/100
haskell/containers#1260 ·
维护者通常 2 天内回复