Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

`Referrer-Policy: no-referrer` breaks `/_logout`?

未关闭
#692 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 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,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

jgm/gitit 的其他 Issue

查看 jgm/gitit 的全部 Issue

相似的 Issue

更多 Haskell Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。