{{ summary.heading }} {{ summary.primary }} {{ summary.line }} Evidence {{ analysis.score }}/100 Signals {{ signalRows.length }} Chain {{ chainRows.length }}
Proxy header and trust-boundary inputs
Recognizes raw names, CGI-style HTTP_ names, REMOTE_ADDR, RFC 7239 Forwarded, Via, and common CDN client-IP headers.
{{ sourceStatusLine }}
Pasted headers stay in the browser. Current request mode is network-bound and runs only when you press its check button.
Choose the operational question you want the remediation plan to answer.
Enter the access-log remote address when available; leave it blank to review only header claims.
The trust path marks the address immediately before this right-edge window as the first untrusted candidate.
0{{ trustedHopLabel }}5
Nothing is sent until you explicitly run the check. A failed request does not erase the pasted sample.
{{ currentRequestStatus }}
The default is neutral. Enable this only when reviewing output that is expected to conform to RFC 7239.
{{ strictForwardedEnabled ? 'On' : 'Off' }}
{{ tableAnnouncement('signals') }}
HeaderSignalStrengthObserved valueFindingCopy
{{ row.header }}{{ row.signal }}{{ row.strength }}{{ row.value }}{{ row.finding }}
{{ tableAnnouncement('chain') }}
PositionAddress or tokenSourceRoleTrust noteCopy
{{ row.position }}{{ row.address }}{{ row.source }}{{ row.role }}{{ row.note }}
{{ tableAnnouncement('playbook') }}
PriorityActionReasonOwnerCopy
{{ row.priority }}{{ row.action }}{{ row.reason }}{{ row.owner }}
{{ chartAnnouncement }}
{{ row.category }} {{ row.evidence }}%

An application behind a reverse proxy often sees the proxy’s address at the network connection while receiving the original client claim in an HTTP header. That split is useful for routing and logging, but unsafe when the application trusts header values without proving which proxy wrote them.

Observed remote address
The peer address seen by the receiving edge for the request being examined.
Forwarded chain
An ordered list of client and proxy claims carried in X-Forwarded-For or the for parameters of Forwarded.
Trusted edge hop
A known proxy at the right side of the chain whose address range and header-writing behavior are controlled by the operator.
First untrusted candidate
The address immediately to the left of the configured trusted edge window.

Standardized Forwarded fields and widely used headers such as X-Forwarded-For, Via, and CDN-specific client-address headers leave different clues. Their presence can reveal a proxy path, edge provider, scheme rewrite, or original-address claim. Their absence cannot prove that traffic was direct, anonymous, or outside a VPN.

Trust is evaluated from the receiving edge toward the client, so a comma-separated chain is read from right to left. Public clients can often supply their own forwarding headers. A trusted edge should remove, replace, or append them according to a documented policy, and the application must use the same trusted-proxy count or address ranges.

Header evidence supports several different questions. A privacy review asks whether an original address is disclosed. A reverse-proxy review asks which hop an application may trust. A CDN review asks whether the request arrived through the expected provider. The same headers can be relevant to all three, but they do not answer them with equal confidence.

How to Use This Tool:

Choose between local evidence review and an explicit check of the request currently reaching the service.

  1. Select Paste headers to inspect a log or diagnostic block in the browser, or select Current request and press its check button to collect the service-visible proxy headers and remote address.
  2. Choose Privacy or VPN check, Reverse-proxy log review, or CDN or load balancer edge. The profile changes the remediation plan, not the evidence score or classification.
  3. Enter the access-log remote address when it is known, then set Trusted edge hops from 0 through 5. Count only proxies whose network path and header policy you control.
  4. Enable Strict Forwarded syntax when RFC 7239 formatting is expected. Malformed segments become warning evidence rather than being silently accepted.
  5. Review the trust path before using any client-address claim for access control, rate limits, audit logs, or abuse decisions.

Interpreting Results:

The classification describes recognized header evidence. The score measures how much of five evidence categories is present; it is neither a confidence percentage nor a proxy risk score.

  • Transparent proxy signal combines chain evidence with more than one address-path row.
  • CDN edge signal combines a CDN header with a forwarding chain or client-address hint.
  • Anonymous proxy signal reflects disclosure such as Via without stronger chain evidence.
  • No proxy header found means no recognized header was present. Check the observed network address, DNS, WebRTC, provider logs, or other relevant surfaces before concluding that no proxy or VPN was used.

Technical Details:

The analysis normalizes raw and CGI-style header names, redacts common credential and cookie fields, extracts recognized proxy signals, constructs one address chain, and then applies a right-edge trust window. Duplicate recognized headers remain separate evidence rows.

Transformation Core

X-Forwarded-For values are split on commas. RFC 7239 Forwarded values are split into comma-separated elements and semicolon-separated parameters. If both forms exist, the trust path uses the X-Forwarded-For chain; otherwise it uses Forwarded for values. An observed remote address is appended when it is not already present.

Proxy signal transformation rules
Signal group Representative headers Points per match Category
Standard chain Forwarded 30 Client address chain
De-facto chain X-Forwarded-For and aliases 32 Client address chain
Client hint X-Real-IP, Client-IP, and related names 18 Client address hints
CDN client hint CF-Connecting-IP, True-Client-IP, and provider variants 24 Client address hints
Proxy disclosure Via 22 Proxy disclosure
Cache or proxy hint X-Cache, Proxy-Connection, and related names 14 Proxy disclosure
Edge vendor ID CF-Ray, X-Amz-Cf-Id, and provider variants 16 Edge identity
Forwarded metadata X-Forwarded-Proto, host, port, and prefix variants 10 Scheme metadata

Rule Core

For a chain of length n and a configured trusted-hop count h, the trusted window begins at index max(0, nh). Rows at or to the right of that index are marked trusted; the row immediately to its left is the first untrusted candidate. Setting zero trusted hops makes the rightmost row untrusted.

Proxy evidence classification order
Priority Condition Classification
1 Strict parsing found a malformed Forwarded segment Forwarded chain needs trust review
2 CDN evidence plus chain or client-address evidence CDN edge signal
3 Chain evidence and more than one trust-path row Transparent proxy signal
4 Proxy disclosure evidence Anonymous proxy signal
5 Client-address hint only Client-IP hint only
6 No recognized evidence No proxy header found

Formula Core

Each evidence category has a separate saturation point. The overall score is the rounded average of the five category percentages.

Ec = min (100,round(100TcMc)) , S = round (c5Ec5)

Tc is the sum of signal points in category c, Mc is that category’s maximum, and Ec is its 0–100 evidence percentage. Category maxima are 42 for client-address chain, 34 for client-address hints, 30 for proxy disclosure, 24 for edge identity, and 18 for scheme metadata. A multi-row address chain adds min(10, 3 × chain rows) points to the chain category before saturation.

Header values are limited to 320 characters for analysis, and pasted input is limited to 1,048,576 characters. Strict mode reports missing equals signs inside Forwarded elements, but it does not fully validate IP address syntax or reject every malformed extension value.

Privacy Notes:

Pasted headers and uploaded text are analyzed in the browser. Common authorization, cookie, proxy-authorization, and API-key header values are redacted if they appear in pasted evidence.

Current request is network-bound and runs only after its check button is pressed. The receiving service returns the observed remote address and a fixed set of proxy-relevant headers, truncates returned values to 320 characters, and marks the response not to be cached. Do not use this mode with a request context that contains secrets outside the normal browser headers.

Worked Examples:

One trusted reverse proxy

X-Forwarded-For contains a client claim followed by an edge address, and the observed remote address matches that edge. With one trusted hop, the rightmost edge is trusted and the address immediately to its left is the first untrusted candidate. The application should trust that candidate only because the known edge wrote or sanitized the chain.

Via header without an address chain

A lone Via value creates proxy-disclosure evidence and an Anonymous proxy signal, but no client trust path. The header supports the conclusion that an intermediary disclosed itself; it does not identify the original client or prove privacy.