Skip to content

v0.4.0

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Mar 04:16
· 24 commits to master since this release

This release introduced a few new CLI flags, error log improvements, and two breaking changes.

Notable changes listed below.

Breaking Change

In order to keep the code simple and "one and only one solution for one problem", in commit c2473c8, public variable GetReverseProxyHandler and methods DefaultTLSConfig(), StartPrometheusClient(), DefaultReverseProxyHTTPHandler(), DefaultProxyServer() have now been removed.

Now with fingerproxy CLI, you can only customize fingerprinting algorithm via GetHeaderInjectors. To customize reverse proxy or TLS server parameters, see Use as a Library in README.md.

Breaking Change of reverseproxy Package

HTTPHandler.ReverseProxy and HTTPHandler.SetReverseProxyRewriteFunc has been removed in commit b6a145d.

In fact, HTTPHandler.ReverseProxy is immutable. While calling NewHTTPHandler, a rewrite function in ReverseProxy is set to support header injection. Changing internal ReverseProxy disables rewrite, which can cause header injectin malfunction.

Clearer Error Log

Some TLS server error logs such as EOF, connection reset by peer, and TLS handshake timed-out, now have been suspended in commit ed4366f.

These errors are usually caused by clients or unstable network. To see these logs, specify --verbose to enable verbose logs.

More Configurable Options in CLI

New flag --duration-metric-buckets, --preserve-host are available. Run fingerproxy --help to get more information.

Fix fingerprint_duration Metric Prefix

The default metrics prefix fingerproxy_ was missed in fingerprint_duration metric. Now it has been added. Fingerproxy metrics now look like:

fingerproxy_fingerprint_duration_seconds_bucket
fingerproxy_fingerprint_duration_seconds_count
fingerproxy_fingerprint_duration_seconds_sum
fingerproxy_requests_total
...

Production-Ready (almost 😂)

More tests have been added, such as JA4 tests from the JA4 official repo.

Fingerproxy has been deployed on some staging servers of subscan.io for a few weeks. We currently have 12 Fingerproxy instances, serving ~ 4 millions of requests per day.

In the next few releases, Fingerproxy may become production-ready state. Let's see! 😉

image image

Full Changelog

9d53f51 (HEAD, tag: v0.4.0, origin/master) Fixup e2e test.
c5d72db Add tests for -preserve-host.
ed4366f Suspend some TLS handshake client error log, moved to verbose log.
c2473c8 Breaking change: remove GetReverseProxyHandler, DefaultTLSConfig(), StartPrometheusClient(), DefaultReverseProxyHTTPHandler(), DefaultProxyServer().
b6a145d Breaking change: remove HTTPHandler.ReverseProxy and SetReverseProxyRewriteFunc().
e283cb7 Improve README.
052d130 Implement official JA4 tests. (#6)