`Referrer-Policy: no-referrer` breaks `/_logout`?
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 45/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- haskell, nginx
調査の方向性
まず src/Network/Gitit/Authentication.hs の 404-415 行付近から始め、Referrer-Policy: no-referrer を指定して nginx の背後で 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 はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
jgm/gitit のほかの issue
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 25/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
似ている issue
-
bug good-title pdd
難易度 2/5 1時間未満 初心者へのやさしさ 82/100
objectionary/phino#1630 ·
メンテナーはふだん 1 日以内に返信