gitwtfhub

wtf is ja3rp?

sleeyax/ja3rp — explained in plain English

Analysis updated 2026-08-07 · repo last pushed 2024-01-31

26GoAudience · ops devopsComplexity · 3/5DormantSetup · moderate

TL;DR

A gatekeeper tool for web servers that blocks automated bots by checking the unique fingerprint of each connecting client's secure connection setup, allowing real browsers through while stopping scripts.

Mindmap

mindmap
  root((repo))
    What it does
      Blocks automated bots
      Allows real browsers
      Checks connection fingerprints
    How it works
      Inspects secure greeting
      Calculates unique ID
      Matches against approved list
    Use cases
      Protect ticketing sites
      Block scrapers from APIs
      Filter automated traffic
    Tech stack
      Go
      CLI utility
      Embeddable library
    Audience
      Website operators
      API maintainers
    Limitations
      Needs security certificate
      Advanced bots can mimic
      No longer maintained

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Block simple bots from buying up ticket inventory on an event website.

REASON 2

Stop automated scraping tools from hitting your API endpoints.

REASON 3

Filter out command-line HTTP clients before they reach your application.

REASON 4

Embed fingerprint filtering directly into a custom Go web server.

What's in the stack?

GoCLITLS

How it stacks up

sleeyax/ja3rpelyelysiox/recaptcha-botguardicloudza/r1rpc
Stars262626
LanguageGoGoGo
Last pushed2024-01-31
MaintenanceDormant
Setup difficultymoderatehardmoderate
Complexity3/55/54/5
Audienceops devopsresearcherdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 1h+

Requires a TLS security certificate to inspect secure connections, plus manual effort to capture and configure approved browser fingerprints.

No license information was provided in the repository documentation.

Wtf does this do

JA3RP is a tool that sits in front of your web server and acts as a bouncer, deciding who gets in and who gets blocked. It makes these decisions based on a "fingerprint" of the software connecting to your server, letting you allow real web browsers while blocking automated bots or scraping tools. The project is no longer maintained, but it remains a working example of this filtering technique. When any client connects to a website, it sends an initial greeting message to set up a secure connection. The specific details of this message, like the encryption settings and supported features, vary depending on the software making the request. A browser like Firefox sends a slightly different greeting than a programming tool like cURL. This tool calculates a unique ID for that greeting and checks it against a list of approved or blocked IDs. Approved requests are forwarded to your actual server, while blocked ones are stopped at the door. You would use this if you operate a website or API and want a lightweight way to block basic automated traffic. For example, if you run a ticketing site and want to stop simple bots from buying up inventory, you could configure this tool to only allow the fingerprints of standard web browsers. Anyone using a command-line tool to automate requests would be blocked before they ever reach your actual application. The tool can be used as a command-line utility or embedded directly into a custom application. It requires a standard security certificate to function, since it needs to inspect the secure connection setup process. The README doesn't go into detail on the limits of this approach, but it is worth noting that sophisticated bots can now mimic browser fingerprints, so this acts as a first line of defense rather than a complete security solution.

Yoink these prompts

Prompt 1
Help me set up JA3RP as a reverse proxy in front of my web server to block cURL and Python requests bots. What security certificate do I need and how do I configure the allowlist of browser fingerprints?
Prompt 2
I want to embed JA3RP into my existing Go application to filter incoming traffic by TLS fingerprint. Show me how to use it as a library and where to specify which fingerprints to allow or block.
Prompt 3
How do I capture the JA3 fingerprint of my Firefox and Chrome browsers so I can add them to the JA3RP allowlist?
Prompt 4
Help me run JA3RP from the command line with a config file that only permits real browser fingerprints and logs blocked connection attempts.

Frequently asked questions

wtf is ja3rp?

A gatekeeper tool for web servers that blocks automated bots by checking the unique fingerprint of each connecting client's secure connection setup, allowing real browsers through while stopping scripts.

What language is ja3rp written in?

Mainly Go. The stack also includes Go, CLI, TLS.

Is ja3rp actively maintained?

Dormant — no commits in 2+ years (last push 2024-01-31).

What license does ja3rp use?

No license information was provided in the repository documentation.

How hard is ja3rp to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is ja3rp for?

Mainly ops devops.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.