Query parameter values are truncated at a second equals sign
メンテナーはふだん 2 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 88/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- javascript
調査の方向性
src/core/router/util.js と既存の Jest router utility suite から始め、その後、報告された parseQuery の再現を実行してください。デコード時にパラメーターを区切るのは最初の等号だけであり、プラスからスペースへの変換、空の値、値のないパラメーターは変更されないことを確認してください。埋め込まれた等号が保持された状態で、回帰テストは成功するはずです。
索引モデルが issue の本文から書いたものです。
説明
Bug Report
Current behavior
Query parameter values are truncated at the second equals sign. On develop f34374b7423340e5ddec81c8ff565c26cc056fb5, parseQuery('?id=a=b=c&other=ok') returns {id: 'a', other: 'ok'} instead of preserving a=b=c.
The same parser is used by both hash and HTML5 history, so route queries exposed to plugins are affected. Values containing a literal equals sign, including padded encoded data, lose information.
Reproduction
From the source checkout:
import { parseQuery } from './src/core/router/util.js';
console.log(parseQuery('?id=a=b=c&other=ok'));
// { id: 'a', other: 'ok' }
Expected behavior
Only the first equals sign separates the parameter name from its value. Remaining equals signs should stay in the value. Existing decoding, plus-to-space conversion, empty values and valueless parameters should retain their behavior.
Environment
Docsify 5.0.0 develop source, Node.js on macOS. Reproduced directly and with a failing Jest regression in the existing router utility suite.
- 主要言語
- JavaScript
- スター
- 31.5k
- フォーク
- 5.8k
- 平均マージ
- 2日 14時間
- マージ済み PR(30日)
- 5
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
docsifyjs/docsify のほかの issue
-
bug Triage
難易度 3/5 1〜2日 初心者へのやさしさ 66/100
メンテナーはふだん 2 日以内に返信
-
Cached AJAX responses lose status metadata exposed through vm.route.response対応中かも @xu91102 が 22 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
メンテナーはふだん 2 日以内に返信
-
In the Edge browser, the character `{docsify-updated}` is not replaced再び着手できるかも @AmanUllah687 が 75 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンwait for information
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
docsifyjs/docsify#2681 · コメント 11 件 ·
メンテナーはふだん 2 日以内に返信
-
feature request Triage
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
docsifyjs/docsify#2643 · コメント 5 件 ·
メンテナーはふだん 2 日以内に返信
-
Is it possible not to push unnecessary state when clicking an <a> element?対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンneeds discussion
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
メンテナーはふだん 2 日以内に返信
docsifyjs/docsify の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 65/100
521xueweihan/HelloGitHub#4025 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
yetone/magpie#2844 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
c1overzz/dsh-bili-scroll#22 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
maproulette/maproulette-frontend#2944 ·
メンテナーはふだん 1 日以内に返信