Skip to content

Conversation

@bneradt
Copy link
Contributor

@bneradt bneradt commented Jan 14, 2026

Problem:
When --preserve was enabled and a request passed through multiple proxies, each header was checked individually. This could result in mismatched fingerprint data - for example, x-ja3-raw being added by a downstream proxy while x-ja3-sig was preserved from an upstream proxy.

Solution:
The JA3 and JA4 fingerprint plugins now check if ANY header in a fingerprint group exists before adding headers. If any header in the group exists, ALL headers in that group are skipped.

Changes:

  • ja3_fingerprint: Added group-level checks for JA3 headers
  • ja4_fingerprint: Added --preserve option and group-level check for JA4 headers
  • Updated tests to verify group-level preserve behavior

@bneradt bneradt added this to the 10.2.0 milestone Jan 14, 2026
@bneradt bneradt self-assigned this Jan 14, 2026
@bneradt bneradt added ja3_fingerprint ja4_fingerprint Work related to JA4 fingerprinting labels Jan 14, 2026
Problem:
When --preserve was enabled and a request passed through multiple proxies,
each header was checked individually. This could result in mismatched
fingerprint data - for example, x-ja3-raw being added by a downstream proxy
while x-ja3-sig was preserved from an upstream proxy.

Solution:
The JA3 and JA4 fingerprint plugins now check if ANY header in a fingerprint
group exists before adding headers. If any header in the group exists, ALL
headers in that group are skipped.

Changes:
- ja3_fingerprint: Added group-level checks for JA3 headers
- ja4_fingerprint: Added --preserve option and group-level check for JA4 headers
- Updated tests to verify group-level preserve behavior
@bneradt bneradt force-pushed the ja_fix_preserve_across_headers_asf branch from 49e7f6f to a7a1dd3 Compare January 14, 2026 23:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ja3_fingerprint ja4_fingerprint Work related to JA4 fingerprinting

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant