Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
368bac5
UGLY(http): fix relative url obfuscation
Eldolfin Mar 3, 2026
405bf86
fix(http): fuzzing edge cases
Eldolfin Mar 5, 2026
fcae8ab
fix(http): fuzzing edge cases
Eldolfin Mar 5, 2026
128aaa8
fix(http): reject invalid percent-encoding sequences like bare '%'
Eldolfin Mar 5, 2026
54e0ee4
fix(http): preserve dot path segments that url crate resolves away
Eldolfin Mar 5, 2026
3291a32
fix(http): apply remove_path_digits to relative URL results
Eldolfin Mar 5, 2026
c47c680
fix(http): encode Go's extra path chars (!, ', (, ), *) for relative …
Eldolfin Mar 5, 2026
f4f4082
fix(http): only encode Go path chars when input has non-ASCII bytes
Eldolfin Mar 5, 2026
40523da
fix(http): properly encode non-ASCII fragment content
Eldolfin Mar 5, 2026
10b5e13
fix(http): reject URLs where first path segment contains ':' (Go pars…
Eldolfin Mar 5, 2026
0501cba
fix(http): percent-encode control chars in fragment before url-joining
Eldolfin Mar 5, 2026
215b2b2
fix(http): use char iteration when pre-encoding fragment control chars
Eldolfin Mar 5, 2026
266d948
fix(http): encode backslash and other Go-always-encoded chars in path
Eldolfin Mar 5, 2026
ea04644
fix(http): encode '[' and ']' when non-ASCII triggers escape() fallback
Eldolfin Mar 5, 2026
2c94802
fix(http): pre-encode backslash before go_like_reference to prevent p…
Eldolfin Mar 5, 2026
73fc087
fix(http): strip trailing empty fragment '#' to match Go's url.URL.St…
Eldolfin Mar 5, 2026
a0b9cc2
fix(http): only check path (not fragment) for non-ASCII when encoding…
Eldolfin Mar 5, 2026
9f917b9
fix(http): preserve leading '/' for absolute-path inputs in go_like_r…
Eldolfin Mar 5, 2026
b3e92d7
fix(http): encode '#' in fragment content (Go encodes it as %23)
Eldolfin Mar 5, 2026
1d7b42e
fix(http): allow control chars in fragment, reject only in path
Eldolfin Mar 5, 2026
061a5e8
fix(http): don't encode ! etc. in fragment portion
Eldolfin Mar 5, 2026
0620bde
fix(http): reject invalid percent-encoding in fragment (Go returns '?')
Eldolfin Mar 5, 2026
179cc2c
fix(http): encode ', !, (, ), *, [, ] in fragment when non-ASCII present
Eldolfin Mar 5, 2026
39f0c19
fix(http): encode cat2 chars in fragment when original URL has non-AS…
Eldolfin Mar 5, 2026
b2005ca
fix(http): fragment encoding - only encode ' [ ] not \! ( ) * when no…
Eldolfin Mar 5, 2026
256c77c
fix(http): remove_relative_path_digits must stop at '#' - fragment di…
Eldolfin Mar 5, 2026
736bdee
fix(http): strip trailing '#' from dot-segment fallback (empty fragment)
Eldolfin Mar 5, 2026
af46866
fix(http): prepend original path when go_like_reference resolves path…
Eldolfin Mar 5, 2026
024425e
fix(http): preserve dot-segment prefixes (., .., ./, ../) in go_like_…
Eldolfin Mar 5, 2026
b420798
fix(http): both-options-false
Eldolfin Mar 5, 2026
8872b31
fix(http): pre-parse control char check in HTTP
Eldolfin Mar 5, 2026
3a4ef0b
fix(http): handle opaque URIs (lowercase scheme, keep data raw)
Eldolfin Mar 5, 2026
2a4ed49
fix(http): return original opaque URI when it contains control chars
Eldolfin Mar 5, 2026
18dfa0d
fix(http): query-only URLs (?query) return original (Go keeps query raw)
Eldolfin Mar 5, 2026
8b41991
fix(http): preserve original query string (Go uses RawQuery, doesn't …
Eldolfin Mar 5, 2026
abacdf7
fix(http): encode Cat1 chars ({|}^etc.) in fragment, also add ! ( ) *…
Eldolfin Mar 5, 2026
c2d7aa2
fix(http): invalid percent-encoding with both options false returns o…
Eldolfin Mar 5, 2026
5dd8244
fix(http): colon-in-segment with both options false returns original …
Eldolfin Mar 5, 2026
2c2ec01
fix(http): encode Cat2 chars when any Cat1 char triggers Go's escape(…
Eldolfin Mar 5, 2026
0397c09
fix(http): invalid percent-encoding check only applies to path, not q…
Eldolfin Mar 5, 2026
7233171
fix(http): reject invalid percent-encoding in fragment (not just path)
Eldolfin Mar 5, 2026
bd6a9d5
fix(http): reject invalid %-encoding and strip empty fragment in opaq…
Eldolfin Mar 6, 2026
0d94728
fix(http): encode Cat2 chars (!, ', etc.) when path contains double-q…
Eldolfin Mar 6, 2026
5c0526d
fix(http): reject percent-encoded non-UTF-8 sequences like Go
Eldolfin Mar 6, 2026
9de928d
fix(http): preserve fragment when removing query string for ?#frag URLs
Eldolfin Mar 6, 2026
0d5b9eb
fix(http): preserve fragment for ?query#frag when removing query string
Eldolfin Mar 6, 2026
b7e873b
fix(http): strip empty trailing fragment for query-only URLs
Eldolfin Mar 6, 2026
d672f04
fix(http): encode non-ASCII fragment chars for query-only URLs
Eldolfin Mar 6, 2026
3082013
fix(http): don't restore bare '#' fragment when restoring raw query
Eldolfin Mar 6, 2026
9bab0bf
fix(http): normalize percent-encoded unreserved chars in path
Eldolfin Mar 6, 2026
c726aa1
fix(http): reject URLs where pre-fragment path starts with colon
Eldolfin Mar 6, 2026
e7180a7
fix(http): HTTP non-ASCII path check
Eldolfin Mar 6, 2026
c5f4ceb
fix(http): clippy warnings
Eldolfin Mar 6, 2026
42a31e5
fix(http): cargo fmt
Eldolfin Mar 6, 2026
b27a2fc
fix(http): simplify a lot
Eldolfin Mar 9, 2026
a22d54a
fix(http): clippy
Eldolfin Mar 9, 2026
0362c87
fix: update LICENSE-3rdparty.yml
Eldolfin Mar 9, 2026
18088a7
fix(http): clippy
Eldolfin Mar 9, 2026
3e32c31
fix(http): dash decode
Eldolfin Mar 10, 2026
4d1aa68
fix: use older cargo bundle license to match ci
Eldolfin Mar 10, 2026
54e297c
fix(http): remove unused url crate
Eldolfin Mar 11, 2026
e498168
fix(http): write! instead of push_str(format), fixme comment
Eldolfin Mar 12, 2026
8db3fd4
fix(http): rename/document confusing cat1/cat2 functions
Eldolfin Mar 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

53 changes: 53 additions & 0 deletions LICENSE-3rdparty.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5197,6 +5197,31 @@ third_party_libraries:
licenses:
- license: MIT
text: NOT FOUND
- package_name: borrow-or-share
package_version: 0.2.4
repository: https://github.com/yescallop/borrow-or-share
license: MIT-0
licenses:
- license: MIT-0
text: |-
MIT No Attribution

Copyright 2024 Scallop Ye

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- package_name: bumpalo
package_version: 3.17.0
repository: https://github.com/fitzgen/bumpalo
Expand Down Expand Up @@ -11607,6 +11632,34 @@ third_party_libraries:
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
- package_name: fluent-uri
package_version: 0.4.1
repository: https://github.com/yescallop/fluent-uri-rs
license: MIT
licenses:
- license: MIT
text: |-
MIT License

Copyright (c) 2024 Scallop Ye

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
- package_name: fnv
package_version: 1.0.7
repository: https://github.com/servo/rust-fnv
Expand Down
2 changes: 1 addition & 1 deletion libdd-trace-obfuscation/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ anyhow = "1.0"
regex = "1"
serde = { version = "1.0.145", features = ["derive"] }
serde_json = { version = "1.0", features = ["preserve_order"] }
url = "^2.5.4"
percent-encoding = "2.1"
log = "0.4"
libdd-trace-protobuf = { version = "1.1.0", path = "../libdd-trace-protobuf" }
libdd-trace-utils = { version = "2.0.0", path = "../libdd-trace-utils" }
libdd-common = { version = "2.0.0", path = "../libdd-common" }
fluent-uri = "0.4.1"

[dev-dependencies]
duplicate = "0.4.1"
Expand Down
Loading
Loading