Query parameter values are truncated at a second equals sign
Maintainer thường phản hồi trong vòng 8 ngày
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 88/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- javascript
Hướng nghiên cứu
Bắt đầu với src/core/router/util.js và bộ kiểm thử tiện ích router hiện có của Jest, sau đó chạy bản tái hiện parseQuery đã được báo cáo. Xác minh rằng khi giải mã, chỉ dấu bằng đầu tiên phân tách một tham số, còn việc chuyển dấu cộng thành khoảng trắng, các giá trị rỗng và các tham số không có giá trị vẫn không thay đổi; kiểm thử hồi quy phải vượt qua với các dấu bằng nằm bên trong được giữ nguyên.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- JavaScript
- Star
- 31.6k
- Fork
- 5.8k
- Merge trung bình
- 7 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 9
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của docsifyjs/docsify
-
Bullet points beginning with inline math: subsequent text formatting not recognised correctlyĐang mởbug Triage
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 66/100
docsifyjs/docsify#2839 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 8 ngày
-
Cached AJAX responses lose status metadata exposed through vm.route.responseCó thể đã có người làm @xu91102 đã nhận 26 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 8 ngày
-
In the Edge browser, the character `{docsify-updated}` is not replacedCó thể làm lại được @AmanUllah687 đã nhận 80 ngày trước và không có pull request nào đang mở. Đang mởwait for information
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
docsifyjs/docsify#2681 · 11 bình luận ·
Maintainer thường phản hồi trong vòng 8 ngày
-
Nested/Recursive includesĐang mởfeature request Triage
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 38/100
docsifyjs/docsify#2643 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 8 ngày
-
Is it possible not to push unnecessary state when clicking an <a> element?Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởneeds discussion
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 8 ngày
Tất cả issue của docsifyjs/docsify
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 88/100
fossasia/visdom-dev#69 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 74/100
-
建议写成 1949-Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 62/100
DeanChensj/jiangshan-map#133 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Frontend build fails with Frappe version-16: DataImport is no longer exported by @framework/uiĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
ew
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày