From 901f478322ce827fd3f9c41bcb585b1d7faee3af Mon Sep 17 00:00:00 2001 From: Phil Sturgeon <67381+philsturgeon@users.noreply.github.com> Date: Wed, 3 Jan 2024 15:28:19 +0000 Subject: [PATCH 1/8] added What is X-Forwarded-For All About? --- src/posts/what-is-x-forwarded-for-about.md | 271 +++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 src/posts/what-is-x-forwarded-for-about.md diff --git a/src/posts/what-is-x-forwarded-for-about.md b/src/posts/what-is-x-forwarded-for-about.md new file mode 100644 index 00000000..750fbf7f --- /dev/null +++ b/src/posts/what-is-x-forwarded-for-about.md @@ -0,0 +1,271 @@ +--- +title: 'What is X-Forwarded-For All About?' +date: '2024-01-03T15:26' +# cover_image: './header-images/notepad.jpg' +author: Phil Sturgeon +authorUrl: https://philsturgeon.com/ +--- + +The X-Forwarded-For (XFF) HTTP header serves a crucial role in providing insight into the origin of web requests. The header works as a mechanism for conveying the original source IP addresses of clients, and not just one client, but multiple. This list of IPv4 and IPv6 addresses is handy in scenarios where requests traverse several servers, proxies, or load balancers. + +A typical HTTP request goes on a bit of a journey, traversing multiple layers of infrastructure before reaching its destination. Without the `X-Forwarded-For` header, the receiving server would only see the IP address of the last intermediary in the chain, rather than the true client origin. + + +sequenceDiagram + actor Client + participant CDN + participant LB as Load Balancer + participant B as Backend App X + Client->>CDN: 28.178.124.142 + CDN->>LB: 198.40.10.101 + LB->>B: 198.40.10.102 + + +By the time the backend application is seeing an incoming request, the IP address is long forgotten, which is where `X-Forwarded-By` can help out. + +```http +X-Forwarded-By: 28.178.124.142, 198.40.10.101, 198.40.10.102 +``` + +This header keeps a record of each IP in the chain, in the order from left to right that the request was made. This has a whole load of use cases depending on what you're building. + +- **User Authentication:** Use the header information to ensure that login attempts originate from recognized and authorized locations, and flag the login as suspect if not, triggering 2FA check. + +- **Load Balancing:** Even distribute incoming traffic across servers, to ensure optimal performance during busy periods. + +- **Data localization:** European Union, Brazil, and China all have privacy laws about keeping data within their zones, and this can help identify those users who need special treatment. + +- **Geographic Content Delivery:** CDNs use `X-Forwarded-For` to determine the user's location and serve content from the nearest server to reduce latency. + +- **Access Control and Security:** Websites use `X-Forwarded-For` to verify the legitimacy of requests and implement access controls based on IP addresses, like a corporate intranet that only allows access to certain resources for employees coming from recognized office IP ranges. + +- **Web Application Firewalls (WAF):** Filter incoming traffic, blocking suspicious requests from a known malicious IP address listed in `X-Forwarded-For`. + +- **Fraud Prevention:** Financial institutions use `X-Forwarded-For` to detect and prevent fraudulent activities based on user location, e.g. identifying an unusual login attempt from a location that is inconsistent with the user's typical access patterns. + +- **API Rate Limiting:** APIs use X-Forwarded-For to enforce rate limiting on a per-client basis. An API provider limits the number of requests from a specific IP address within a given time frame to prevent abuse. + +- **Localized Advertising:** Ad platforms use `X-Forwarded-For` to customize and target ads based on the user's geographical location. + +- **Logging and Analytics:** log to analyze user traffic patterns and behaviors for statistical purposes, like the geographical distribution of users over a specific time period. + +We're talking about security here, but this is a HTTP Request header... so can it not just be completely faked? Is the whole Internet built on a lie?! + +## Can You Trust X-Forwarded-For? + +You should never trust anything in a HTTP request that is coming from the outside world. Actors can be malicious or misconfigured, but either way the contents of a HTTP request can be completely made up, and somebody could use X-Forwarded-For to pretend they're coming from inside your corporate VPN once they know the IP, pretend they're in the same geographic region as a user who's bank account they're trying to log into, or all sorts of other shenanigans. + +One way to add some control to the `X-Forwarded-For` header is to involve a trusted reverse proxy, and disable direct access to the other proxies/servers/load balancers other than through that proxy. For API developers this might be an API Gateway, but it could also be a CDN like Fastly, Squid Proxy, Cloudflare, etc. If the request is coming through here, assuming that reverse proxy hasn't been hacked, you're probably ok to believe at least some of the IP chain you're seeing. But how? + +The further left you look in the field the more room there is for mistakes, as there are more servers which could be misconfigured, and anything that's coming from beyond the left most proxy you control should be treated with suspicion. + +You can make decisions at the reverse proxy level that change how the field is constructed. For example, nginx can set/override the `X-Forwarded-For` header completely, ditching whatever the client provides, and replacing it with the IP address it is seeing. + +``` +proxy_set_header X-Forwarded-For $remote_addr; +``` + +Say the client (IP 28.178.124.142) is trying to hide their IP address, or pretend to be somebody else, the request value would be replaced with the actual IP address of the network actor as seen by that server, not just blindly accepting whatever they've said their IP is. + + +sequenceDiagram + actor Client as Client
IP 28.178.124 + participant CDN as CDN
IP 198.40.10.101 + participant LB as Load Balancer
IP 198.40.10.102 + participant B as Backend App X + Client->>CDN: X-Forwarded-For
1.1.1.1 + CDN->>LB: X-Forwarded-For
28.178.124.142 ,198.40.10.101 + LB->>B: X-Forwarded-For
28.178.124.142 ,198.40.10.101 198.40.10.102 +
+ +This is the safest approach for when you're not sure how securely and reliably the rest of your call chain is going to be. If other proxies and backend apps are likely to blindly trust the incoming information, or generally make insecure choices (which we'll get into more later) then it's probably safest to completely replace the `X-Forwarded-For` header at that outside-world facing reverse proxy, and ditch any untrustworthy data in the process. Unfortunately + +If you're confident the backend app is able to handle it, you can take whatever they provide, and simply append the IP address being seen by the server on the end of the chain. + +``` +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +``` + +This is a special bit of functionality in nginx, but most reverse proxies will have similar logic. It will build up the header to maintain whatever the client initially passed, and if they are connecting through any intermediary proxies, so long as those proxies support `X-Forwarded-For`, then that information will be passed along too. + + +sequenceDiagram + actor Client as Client
IP 28.178.124 + participant CDN as CDN
IP 198.40.10.101 + participant LB as Load Balancer
IP 198.40.10.102 + participant B as Backend App X
IP 198.40.10.103 + Client->>CDN: X-Forwarded-For
1.2.3.4 + CDN->>LB: X-Forwarded-For
1.2.3.4,28.178.124.142,198.40.10.101 + LB->>B: X-Forwarded-For
1.2.3.4,28.178.124.142,198.40.10.101 198.40.10.102 +
+ +This means you've got the whole chain of everything that is reported to you, for good or bad, and you need to hope everyone using it knows there can be a fair few problems with this data. + +### Invalid IP Addresses + +First of all there's no reason to assume everything in there will be a valid IP address. + +At the most basic, an invalid IP address might trigger a 500 Internal Server Error, and that could be a source of DDoS attacks. + +Slightly worse would be blindly exploding on a `,` and sending it off to various other services (like an API call) then all sorts of unexpected things could happen. + +### Arbitrary Code Execution + +Beyond invalid, or faked, there could be literal malicious code in there. + +If a bad actor knew (or guessed) the programming language and logging frameworks being used, and that logging system does not sanitize/escape input, or has a bug that allows code to be executed in the logger, then somebody could be running random code on your server. + +This has been known to happen ([CVE-2021-44228 a.k.a. "Log4Shell”](https://blog.shiftleft.io/log4shell-apache-log4j-remote-code-execution-4f58ed7e74f9)). + +```nohighlight +X-Forwarded-For: 1.2.3.4,nonsense,${mailicious()},2.2.2.2,28.178.124.142,198.40.10.101,198.40.10.102 +``` + +Any logic using this field should ignore anything that is not a valid IP address, and beyond that it needs to do some basic checks before logging it to a database, like checking the length of string so you're not filling up your DB with trash and potentially making other DDoS and resource management issues. + +See [OWASP A03:2021 – Injection](https://owasp.org/Top10/A03_2021-Injection/) and [OWASP API4:2023 - Unrestricted Resource Consumption](https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/) for more on what can go wrong there. + +Whichever approach you pick for the client-facing proxy, make sure every other server in the chain is not directly accessible, or you'll not ever be able to trust any of it. + +## Picking the right IP + +You might be looking at that list of IPs wondering "which is THE client IP". The answer is "the furthest IP to the right that is not yours". When it comes to logging you want to log all of them (escaped and limited), but when it comes to security based use cases there is only one "client IP" you can trust: the one immediately to the left of the last known private/internal IP address, as in, the last "not one of ours" server that's valid, and not internal. + +So if we got a request like this, which one do we use for security checks or geolocation? + +```nohighlight +X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101,198.40.10.102 +``` + +There are two common approaches. + +### 1.) Picking by Trusted Proxy List + +One approach is to look at the specific IPs and see if they are recognized, going from the right until you see an IP you don't recognize. + +- `198.40.10.102` would be detected as internal by some sort of lookup on your end. A list of IPs or ranges stored in code would flag that up. +- `198.40.10.101` would be flagged as one of yours buy the same list. +- `28.178.124.142`. Not one of yours? Not invalid? Not internal? Great, that's the client, and it looks like they're in Ohio, USA. Serve them content from the American servers, and no data protection required because they don't care about privacy laws. + +One mistake would be to see for the first to the left of all internal IPs, because that might notice `172.16.1.101` which is an [internal IP according to IANA](https://www.lifewire.com/what-is-a-private-ip-address-2625970). Yes, it is internal, but it's not a known and trusted internal IP you control. That has been reported to you in the HTTP request, possibly for valid reasons (the client is using some sort of intermediary server), or possibly malicious reasons (they want you to think their real IP address is `1.2.3.4` and hoped that would trick you). + +That can be a pretty complicated approach and requires the backend to know quite a lot about the infrastructure involved, and might be even harder in a cloud environment where IPs might be changing a lot, but it's doable. + +### 2.) Picking by Trusted Proxy Count + +Instead of looking at the specific IPs, the number of trusted proxies between the internet and the backend server is configured. + +The `X-Forwarded-For` IP list is searched from the rightmost by that count minus one. + + +flowchart LR + A(Client) --> B(CDN) + B --> C(Load Balancer) + C --> D[Backend App] + + + +```nohighlight +X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101,198.40.10.102 +``` + +Seeing as the IP address of the backend is not in X-Forwarded-For, it is not included in the count, so we're going to look at how many proxies are to the left before we get to the outside Internet. + +1. `198.40.10.102` - Load Balancer +2. `198.40.10.101` - CDN +3. `28.178.124.142` - Client IP + +Here the trusted proxy count would be 2, and that can be popped into configuration somewhere. The backend app can split those 2 off IPs off, and the next one will be the client IP address. + +```javascript +const headers = { + "X-Forwarded-For": "1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101,198.40.10.102" +} + +const config = { + trusted_proxy_count: 2 +} + +const clientIp = headers["X-Fowarded-For"] + // Split the string into multiple parts + .split(',') + // If the count is 2, we want the 3rd from the end, + // which means flipping to negative and subtracting one more + // then grabbing the first item in the list with [0] + .slice(-1 - config.trusted_proxy_count)[0]); + +console.log(clientIp) // "28.178.124.142" +``` + + +Basically if there are three reverse proxies, the last two IP addresses will be internal. + +If your infrastructure is simple and there is only one reverse proxy, that proxy will add the client's IP address, so the rightmost address can be used. + +## Alternatives & Standards + +`X-Forwarded-For` is not part of any current specification, it's a convention implemented by various bits of software and services in a similar way, but has not been standardized by anyone like the IETF. + +The IETF folks deprecating X- headers since [RFC 6648: Deprecating the "X-" Prefix and Similar Constructs](https://datatracker.ietf.org/doc/html/rfc6648) in 2012, and if you're interested in why Mark Nottingham gives great backstory on this in *[Stop it with the X- Already! (2009)](https://www.mnot.net/blog/2009/02/18/x-)*. In part the effort to standardize common X- extensions is down to a single specification making implementations more reliable, but in practice its also because the convention that was first imagined is often overly simplistic, missing important use-cases not thought of when first conceived. + +### Forwarded Header + +Whilst the `X-Forwarded-For` is popular, and generally doesn't suffer from compatibility issues, there's room for making it better, and that takes the form of the `Forwarded` header defined by [RFC 7239: Forwarded HTTP Extension](https://datatracker.ietf.org/doc/html/rfc7239) finalized in 2014. + +``` +Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 +``` + +It's really similar to `X-Forwarded-For`, but also incorporates functionality from `X-Forwarded-Proto` which helps define the protocols (HTTP or HTTPS) used in the chain instead of the IP. By combining `-For` and `-Proto` into a single header there's less room for confusion stitching things together. + +``` +X-Forwarded-For: 192.0.2.172 +Forwarded: for=192.0.2.172 + +X-Forwarded-For: 192.0.2.43, 2001:db8:cafe::17 +Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]" +``` + +_Examples from [MDN Web Docs: HTTP > HTTP headers > Forwarded](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded)._ + +Whether you should use `X-Forwarded-For` or `Forwarded` version can be a tricky question. + +Does all the tooling in your infrastructure support it? Probably, but you'll want to check. + +Does it matter for any practical reason when you can just use `X-Forwarded-For` or is this just vibes and "being proper"? Well, it has one major benefit that might make it worth the effort of checking compatibility: Forwarded has extensibility. + +With `X-Forwarded-For`, you have to figure out which IP address is the client IP with hardcoded rules such as “take the 3rd last IP address”. Whether you're using lists or counts, it's not just a faff, it's subject to change as your infrastructure evolves. + +With `Forwarded`, [as nginx suggest](https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/), your trusted client-facing proxy could include a secret token to identify itself: + +``` +Forwarded: for=12.34.56.78, for=23.45.67.89;secret=egah2CGj55fSJFs, for=10.1.2.3 +``` + +That seems like a pretty solid reason to consider using the standard version. + +## Via Header + +There is another similar HTTP header: `Via`, defined in RFC 9110 and finalized in 2022. This header has more of a focus on the protocol (HTTP or HTTPS) and the version (`HTTP/1.1 proxy.example.re, 1.1 edge_1`). This information is intended to help figure out if connection has been downgraded at any point, whether that's from HTTP/2 to 1.1, or from HTTPS to HTTP. + +As it also adds the hostname of proxy, and some optional information about the specific product and version of the proxy, it may seem pretty similar for `X-Fowarded-For` and `Forwarded`, but the `Via` header is more for information/debugging or identifying and working around buggy proxies. + +## Summary + +Now you know what X-Forwarded-For and Forwared are for, and can leverage that knowledge to do some handy stuff if you like. Maybe that's targeted advertisements, but maybe it's something more meaningful like serving content from the closest server to [reduce the carbon impact of your data transmission](https://learn.greensoftware.foundation/introduction), or using it as an extra data point in flagging scammers trying to access to your users accounts. + +Use these powers wisely, and don't sneak them in at the infrastructure changes without talking to the backend developers managing the systems this could effect. + +## Further Reading + +- [RFC 7239: Forwarded HTTP Extension](https://datatracker.ietf.org/doc/html/rfc7239) +- [MDN Web Docs: X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) +- [MDN Web Docs: Forwarded](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded) +- [Using Forwarded in NGINX](https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/) +- [Cloudflare Fundamentals: HTTP request headers](https://developers.cloudflare.com/fundamentals/reference/http-request-headers/) + +--- +Annotations: 0,17739 SHA-256 495b615804081cb5dce9b058f11ba99f +@AI: 38,113 171,71 327,37 372,36 409,2 420,13 461,8 472,68 553,15 569,41 614,89 +@Phil Sturgeon : 0,38 151,20 242,85 364,8 408 411,9 433,28 469,3 540,13 568 610,4 703,187 894,2 897,2 902,14 920,2 923,2 928,205 1137,2 1140,2 1145,3 1152,2 1155,2 1160,193 1372,5 1379,4 1483,62 1546,4 1564,8 1615 1654,5 1667,6 1690,171 1887,4 1896,4 1901 1917 1993,19 2014,4 2045,4 2062 2078 2168,8 2195,5 2297,4 2332,28 2366,3 2434 2450 2454,4 2474,4 2505 2521 2589,6 2603,4 2712,4 2733,4 2809 2928,13 2953,4 2969,4 2974 2990 3061,2 3064,4 3089,3 3168,10 3243,1648 4937,386 5327,2 5330,2 5335,44 5383,2 5386,2 5391,129 5521 5526,2 5529,2 5534,47 5582 5587,2 5590,2 5595 5601,2 5604,2 5609,665 6334,451 6789,2 6792,2 6797,44 6845,2 6848,2 6853,36 6890,7 6901,2 6904,2 6909,39 6950 6952,37 6991 6993,19 7016,2 7019,2 7024,33 7059 7061,19 7084,2 7087,2 7092 7098,2 7101,2 7106,1026 8146,9 8165,2 8250,37 8289 8291,28 8320,8 8356 8370,327 8717,2 8762,13 8785,2 8820,2 8909,831 9747,6 9781 9795,222 10030,131 10174,57 10245,339 10591,51 10703,337 11041,496 11549 11555,8 11570,3 11586,15 11614,11 11626,56 11689,6 11723 11737,209 11959,22 11994,12 12020,219 12256,3 12657,2 12705,15 12728,5 12749,536 13289,2 13306 13341,2 13388,94 13510,9 13558,514 14080,28 14153,15 14172,6 14232,131 14371,173 14700,36 14740,3 14755,14 14836,733 15638,440 16115,768 16934,323 17302,9 17314,7 17336,2 17411,30 17508,105 17636 17658,2 17738 +... From de5da845f95b7cce2250c5c44b42f8aa8d18fe38 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon <67381+philsturgeon@users.noreply.github.com> Date: Sat, 6 Jan 2024 11:07:57 +0000 Subject: [PATCH 2/8] Apply suggestions from code review Co-authored-by: Tim Perry <1526883+pimterry@users.noreply.github.com> --- src/posts/what-is-x-forwarded-for-about.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/posts/what-is-x-forwarded-for-about.md b/src/posts/what-is-x-forwarded-for-about.md index 750fbf7f..cc6b2c57 100644 --- a/src/posts/what-is-x-forwarded-for-about.md +++ b/src/posts/what-is-x-forwarded-for-about.md @@ -21,7 +21,7 @@ sequenceDiagram LB->>B: 198.40.10.102 -By the time the backend application is seeing an incoming request, the IP address is long forgotten, which is where `X-Forwarded-By` can help out. +By the time the backend application is seeing an incoming request, the IP address of the client is long forgotten, which is where `X-Forwarded-By` can help out. ```http X-Forwarded-By: 28.178.124.142, 198.40.10.101, 198.40.10.102 @@ -31,7 +31,7 @@ This header keeps a record of each IP in the chain, in the order from left to ri - **User Authentication:** Use the header information to ensure that login attempts originate from recognized and authorized locations, and flag the login as suspect if not, triggering 2FA check. -- **Load Balancing:** Even distribute incoming traffic across servers, to ensure optimal performance during busy periods. +- **Load Balancing:** Evenly distribute incoming traffic across servers, to ensure optimal performance during busy periods. - **Data localization:** European Union, Brazil, and China all have privacy laws about keeping data within their zones, and this can help identify those users who need special treatment. @@ -186,7 +186,7 @@ const config = { trusted_proxy_count: 2 } -const clientIp = headers["X-Fowarded-For"] +const clientIp = headers["X-Forwarded-For"] // Split the string into multiple parts .split(',') // If the count is 2, we want the 3rd from the end, From cd6ca613172229b0ed756a9d13eab97bdafb9cc9 Mon Sep 17 00:00:00 2001 From: Phil Sturgeon <67381+philsturgeon@users.noreply.github.com> Date: Sat, 6 Jan 2024 11:07:45 +0000 Subject: [PATCH 3/8] src/posts/what-is-x-forwarded-for-about.md --- src/posts/what-is-x-forwarded-for-about.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/posts/what-is-x-forwarded-for-about.md b/src/posts/what-is-x-forwarded-for-about.md index cc6b2c57..1eb51cbe 100644 --- a/src/posts/what-is-x-forwarded-for-about.md +++ b/src/posts/what-is-x-forwarded-for-about.md @@ -78,7 +78,7 @@ sequenceDiagram LB->>B: X-Forwarded-For
28.178.124.142 ,198.40.10.101 198.40.10.102 -This is the safest approach for when you're not sure how securely and reliably the rest of your call chain is going to be. If other proxies and backend apps are likely to blindly trust the incoming information, or generally make insecure choices (which we'll get into more later) then it's probably safest to completely replace the `X-Forwarded-For` header at that outside-world facing reverse proxy, and ditch any untrustworthy data in the process. Unfortunately +This is the safest approach for when you're not sure how securely and reliably the rest of your call chain is going to be. If other proxies and backend apps are likely to blindly trust the incoming information, or generally make insecure choices (which we'll get into more later) then it's probably safest to completely replace the `X-Forwarded-For` header at that outside-world facing reverse proxy, and ditch any untrustworthy data in the process. If you're confident the backend app is able to handle it, you can take whatever they provide, and simply append the IP address being seen by the server on the end of the chain. @@ -129,7 +129,7 @@ Whichever approach you pick for the client-facing proxy, make sure every other s ## Picking the right IP -You might be looking at that list of IPs wondering "which is THE client IP". The answer is "the furthest IP to the right that is not yours". When it comes to logging you want to log all of them (escaped and limited), but when it comes to security based use cases there is only one "client IP" you can trust: the one immediately to the left of the last known private/internal IP address, as in, the last "not one of ours" server that's valid, and not internal. +You might be looking at that list of IPs wondering "which is THE client IP". The answer is "Reading right to left, it's first IP address that is not one of yours". When it comes to logging you want to log all of them (escaped and limited), but when it comes to security based use cases there is only one "client IP" you can trust: the one immediately to the left of the last known private/internal IP address, as in, the last "not one of ours" server that's valid, and not internal. So if we got a request like this, which one do we use for security checks or geolocation? @@ -263,9 +263,3 @@ Use these powers wisely, and don't sneak them in at the infrastructure changes w - [MDN Web Docs: Forwarded](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded) - [Using Forwarded in NGINX](https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/) - [Cloudflare Fundamentals: HTTP request headers](https://developers.cloudflare.com/fundamentals/reference/http-request-headers/) - ---- -Annotations: 0,17739 SHA-256 495b615804081cb5dce9b058f11ba99f -@AI: 38,113 171,71 327,37 372,36 409,2 420,13 461,8 472,68 553,15 569,41 614,89 -@Phil Sturgeon : 0,38 151,20 242,85 364,8 408 411,9 433,28 469,3 540,13 568 610,4 703,187 894,2 897,2 902,14 920,2 923,2 928,205 1137,2 1140,2 1145,3 1152,2 1155,2 1160,193 1372,5 1379,4 1483,62 1546,4 1564,8 1615 1654,5 1667,6 1690,171 1887,4 1896,4 1901 1917 1993,19 2014,4 2045,4 2062 2078 2168,8 2195,5 2297,4 2332,28 2366,3 2434 2450 2454,4 2474,4 2505 2521 2589,6 2603,4 2712,4 2733,4 2809 2928,13 2953,4 2969,4 2974 2990 3061,2 3064,4 3089,3 3168,10 3243,1648 4937,386 5327,2 5330,2 5335,44 5383,2 5386,2 5391,129 5521 5526,2 5529,2 5534,47 5582 5587,2 5590,2 5595 5601,2 5604,2 5609,665 6334,451 6789,2 6792,2 6797,44 6845,2 6848,2 6853,36 6890,7 6901,2 6904,2 6909,39 6950 6952,37 6991 6993,19 7016,2 7019,2 7024,33 7059 7061,19 7084,2 7087,2 7092 7098,2 7101,2 7106,1026 8146,9 8165,2 8250,37 8289 8291,28 8320,8 8356 8370,327 8717,2 8762,13 8785,2 8820,2 8909,831 9747,6 9781 9795,222 10030,131 10174,57 10245,339 10591,51 10703,337 11041,496 11549 11555,8 11570,3 11586,15 11614,11 11626,56 11689,6 11723 11737,209 11959,22 11994,12 12020,219 12256,3 12657,2 12705,15 12728,5 12749,536 13289,2 13306 13341,2 13388,94 13510,9 13558,514 14080,28 14153,15 14172,6 14232,131 14371,173 14700,36 14740,3 14755,14 14836,733 15638,440 16115,768 16934,323 17302,9 17314,7 17336,2 17411,30 17508,105 17636 17658,2 17738 -... From 84df47d3094d27082a35a04bca626d0d3053ef5e Mon Sep 17 00:00:00 2001 From: Phil Sturgeon <67381+philsturgeon@users.noreply.github.com> Date: Sat, 6 Jan 2024 11:10:01 +0000 Subject: [PATCH 4/8] remove x-forwarded-by mistake --- src/posts/what-is-x-forwarded-for-about.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/posts/what-is-x-forwarded-for-about.md b/src/posts/what-is-x-forwarded-for-about.md index 1eb51cbe..33e01720 100644 --- a/src/posts/what-is-x-forwarded-for-about.md +++ b/src/posts/what-is-x-forwarded-for-about.md @@ -21,10 +21,10 @@ sequenceDiagram LB->>B: 198.40.10.102 -By the time the backend application is seeing an incoming request, the IP address of the client is long forgotten, which is where `X-Forwarded-By` can help out. +By the time the backend application is seeing an incoming request, the IP address of the client is long forgotten, which is where `X-Forwarded-For` can help out. ```http -X-Forwarded-By: 28.178.124.142, 198.40.10.101, 198.40.10.102 +X-Forwarded-For: 28.178.124.142, 198.40.10.101, 198.40.10.102 ``` This header keeps a record of each IP in the chain, in the order from left to right that the request was made. This has a whole load of use cases depending on what you're building. From d138e18c8d4aba8780610e1ccf6aaaeb57f2bd5e Mon Sep 17 00:00:00 2001 From: Phil Sturgeon <67381+philsturgeon@users.noreply.github.com> Date: Mon, 8 Jan 2024 15:03:27 +0000 Subject: [PATCH 5/8] add ip labels to each server --- src/posts/what-is-x-forwarded-for-about.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/posts/what-is-x-forwarded-for-about.md b/src/posts/what-is-x-forwarded-for-about.md index 33e01720..86e56332 100644 --- a/src/posts/what-is-x-forwarded-for-about.md +++ b/src/posts/what-is-x-forwarded-for-about.md @@ -12,10 +12,10 @@ A typical HTTP request goes on a bit of a journey, traversing multiple layers of sequenceDiagram - actor Client - participant CDN - participant LB as Load Balancer - participant B as Backend App X + actor Client as Client
IP 28.178.124 + participant CDN as CDN
IP 198.40.10.101 + participant LB as Load Balancer
IP 198.40.10.102 + participant B as Backend App X
IP 198.40.10.103 Client->>CDN: 28.178.124.142 CDN->>LB: 198.40.10.101 LB->>B: 198.40.10.102 From f4fafa8ac53a9125d457d6f297434c9b8c78882f Mon Sep 17 00:00:00 2001 From: Phil Sturgeon <67381+philsturgeon@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:35:55 +0000 Subject: [PATCH 6/8] fixed bad examples and added explanation --- src/posts/what-is-x-forwarded-for-about.md | 37 ++++++++++++---------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/src/posts/what-is-x-forwarded-for-about.md b/src/posts/what-is-x-forwarded-for-about.md index 86e56332..9e556c0a 100644 --- a/src/posts/what-is-x-forwarded-for-about.md +++ b/src/posts/what-is-x-forwarded-for-about.md @@ -12,22 +12,26 @@ A typical HTTP request goes on a bit of a journey, traversing multiple layers of sequenceDiagram - actor Client as Client
IP 28.178.124 - participant CDN as CDN
IP 198.40.10.101 - participant LB as Load Balancer
IP 198.40.10.102 - participant B as Backend App X
IP 198.40.10.103 + actor Client as Client + participant CDN as CDN + participant LB as Load Balancer + participant B as Backend App X Client->>CDN: 28.178.124.142 CDN->>LB: 198.40.10.101 LB->>B: 198.40.10.102
-By the time the backend application is seeing an incoming request, the IP address of the client is long forgotten, which is where `X-Forwarded-For` can help out. +By the time the backend application is seeing an incoming request the IP address of the original client is long forgotten. This is where `X-Forwarded-For` can help out. ```http -X-Forwarded-For: 28.178.124.142, 198.40.10.101, 198.40.10.102 +X-Forwarded-For: 28.178.124.142, 198.40.10.101 ``` -This header keeps a record of each IP in the chain, in the order from left to right that the request was made. This has a whole load of use cases depending on what you're building. +The goal here is to give a proxy the chance to say "Alright hang on, I'm forwarding you a request, and this the history of where it came from as far as I know". The proxy will not add its own IP address to the list, because if the receiver of that request cares about who is calling it they can combine the `X-Forwarded-For` with the requests source IP address, e.g.: `req.connection.remoteAddress` in NodeJS. So in this example, the load balancer has said "Hey backend app, I am forwarding you a request that came from this client via the CDN, but it does not pop its own IP in there because the backend app can tell if it's coming from the load balancer or not. + +## What is X-Forwarded-For Used For? + +This has a whole load of use cases depending on what you're building. - **User Authentication:** Use the header information to ensure that login attempts originate from recognized and authorized locations, and flag the login as suspect if not, triggering 2FA check. @@ -43,7 +47,7 @@ This header keeps a record of each IP in the chain, in the order from left to ri - **Fraud Prevention:** Financial institutions use `X-Forwarded-For` to detect and prevent fraudulent activities based on user location, e.g. identifying an unusual login attempt from a location that is inconsistent with the user's typical access patterns. -- **API Rate Limiting:** APIs use X-Forwarded-For to enforce rate limiting on a per-client basis. An API provider limits the number of requests from a specific IP address within a given time frame to prevent abuse. +- **API Rate Limiting:** APIs use `X-Forwarded-For` to enforce rate limiting on a per-client basis. An API provider limits the number of requests from a specific IP address within a given time frame to prevent abuse. - **Localized Advertising:** Ad platforms use `X-Forwarded-For` to customize and target ads based on the user's geographical location. @@ -53,7 +57,7 @@ We're talking about security here, but this is a HTTP Request header... so can i ## Can You Trust X-Forwarded-For? -You should never trust anything in a HTTP request that is coming from the outside world. Actors can be malicious or misconfigured, but either way the contents of a HTTP request can be completely made up, and somebody could use X-Forwarded-For to pretend they're coming from inside your corporate VPN once they know the IP, pretend they're in the same geographic region as a user who's bank account they're trying to log into, or all sorts of other shenanigans. +You should never trust anything in a HTTP request that is coming from the outside world. Actors can be malicious or misconfigured, but either way the contents of a HTTP request can be completely made up, and somebody could use `X-Forwarded-For` to pretend they're coming from inside your corporate VPN once they know the IP, pretend they're in the same geographic region as a user who's bank account they're trying to log into, or all sorts of other shenanigans. One way to add some control to the `X-Forwarded-For` header is to involve a trusted reverse proxy, and disable direct access to the other proxies/servers/load balancers other than through that proxy. For API developers this might be an API Gateway, but it could also be a CDN like Fastly, Squid Proxy, Cloudflare, etc. If the request is coming through here, assuming that reverse proxy hasn't been hacked, you're probably ok to believe at least some of the IP chain you're seeing. But how? @@ -74,8 +78,8 @@ sequenceDiagram participant LB as Load Balancer
IP 198.40.10.102 participant B as Backend App X Client->>CDN: X-Forwarded-For
1.1.1.1 - CDN->>LB: X-Forwarded-For
28.178.124.142 ,198.40.10.101 - LB->>B: X-Forwarded-For
28.178.124.142 ,198.40.10.101 198.40.10.102 + CDN->>LB: X-Forwarded-For
28.178.124.142 + LB->>B: X-Forwarded-For
28.178.124.142 ,198.40.10.101
This is the safest approach for when you're not sure how securely and reliably the rest of your call chain is going to be. If other proxies and backend apps are likely to blindly trust the incoming information, or generally make insecure choices (which we'll get into more later) then it's probably safest to completely replace the `X-Forwarded-For` header at that outside-world facing reverse proxy, and ditch any untrustworthy data in the process. @@ -95,8 +99,8 @@ sequenceDiagram participant LB as Load Balancer
IP 198.40.10.102 participant B as Backend App X
IP 198.40.10.103 Client->>CDN: X-Forwarded-For
1.2.3.4 - CDN->>LB: X-Forwarded-For
1.2.3.4,28.178.124.142,198.40.10.101 - LB->>B: X-Forwarded-For
1.2.3.4,28.178.124.142,198.40.10.101 198.40.10.102 + CDN->>LB: X-Forwarded-For
1.2.3.4,28.178.124.142 + LB->>B: X-Forwarded-For
1.2.3.4,28.178.124.142,198.40.10.101 This means you've got the whole chain of everything that is reported to you, for good or bad, and you need to hope everyone using it knows there can be a fair few problems with this data. @@ -118,7 +122,7 @@ If a bad actor knew (or guessed) the programming language and logging frameworks This has been known to happen ([CVE-2021-44228 a.k.a. "Log4Shell”](https://blog.shiftleft.io/log4shell-apache-log4j-remote-code-execution-4f58ed7e74f9)). ```nohighlight -X-Forwarded-For: 1.2.3.4,nonsense,${mailicious()},2.2.2.2,28.178.124.142,198.40.10.101,198.40.10.102 +X-Forwarded-For: 1.2.3.4,nonsense,${mailicious()},2.2.2.2,28.178.124.142,198.40.10.101 ``` Any logic using this field should ignore anything that is not a valid IP address, and beyond that it needs to do some basic checks before logging it to a database, like checking the length of string so you're not filling up your DB with trash and potentially making other DDoS and resource management issues. @@ -134,7 +138,7 @@ You might be looking at that list of IPs wondering "which is THE client IP". The So if we got a request like this, which one do we use for security checks or geolocation? ```nohighlight -X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101,198.40.10.102 +X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101 ``` There are two common approaches. @@ -143,7 +147,6 @@ There are two common approaches. One approach is to look at the specific IPs and see if they are recognized, going from the right until you see an IP you don't recognize. -- `198.40.10.102` would be detected as internal by some sort of lookup on your end. A list of IPs or ranges stored in code would flag that up. - `198.40.10.101` would be flagged as one of yours buy the same list. - `28.178.124.142`. Not one of yours? Not invalid? Not internal? Great, that's the client, and it looks like they're in Ohio, USA. Serve them content from the American servers, and no data protection required because they don't care about privacy laws. @@ -166,7 +169,7 @@ flowchart LR ```nohighlight -X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101,198.40.10.102 +X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101 ``` Seeing as the IP address of the backend is not in X-Forwarded-For, it is not included in the count, so we're going to look at how many proxies are to the left before we get to the outside Internet. From f2e982f5fd088c349f39f79bf3e2661b2f665b70 Mon Sep 17 00:00:00 2001 From: Tim Perry Date: Wed, 31 Jan 2024 15:26:33 +0100 Subject: [PATCH 7/8] Rename slug for XFF post --- ...hat-is-x-forwarded-for-about.md => what-is-x-forwarded-for.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/posts/{what-is-x-forwarded-for-about.md => what-is-x-forwarded-for.md} (100%) diff --git a/src/posts/what-is-x-forwarded-for-about.md b/src/posts/what-is-x-forwarded-for.md similarity index 100% rename from src/posts/what-is-x-forwarded-for-about.md rename to src/posts/what-is-x-forwarded-for.md From a4af4a29d2f3c4c0d8ef49cdd6cef15fa72807a7 Mon Sep 17 00:00:00 2001 From: Tim Perry Date: Wed, 31 Jan 2024 18:04:35 +0100 Subject: [PATCH 8/8] Sprinkle lots of tweaks and render the mermaid diagrams --- src/posts/header-images/chain.jpg | Bin 0 -> 163659 bytes src/posts/what-is-x-forwarded-for.md | 333 +++++++++++++------- src/posts/x-forwarded-for-flow.png | Bin 0 -> 27154 bytes src/posts/x-forwarded-for-path.png | Bin 0 -> 10696 bytes src/posts/x-forwarded-for-spoof-blocked.png | Bin 0 -> 41840 bytes src/posts/x-forwarded-for-spoofed.png | Bin 0 -> 38037 bytes 6 files changed, 211 insertions(+), 122 deletions(-) create mode 100644 src/posts/header-images/chain.jpg create mode 100644 src/posts/x-forwarded-for-flow.png create mode 100644 src/posts/x-forwarded-for-path.png create mode 100644 src/posts/x-forwarded-for-spoof-blocked.png create mode 100644 src/posts/x-forwarded-for-spoofed.png diff --git a/src/posts/header-images/chain.jpg b/src/posts/header-images/chain.jpg new file mode 100644 index 0000000000000000000000000000000000000000..909b9d851ec30f6f0f9273851962e734916b88ce GIT binary patch literal 163659 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 z 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 literal 0 HcmV?d00001 diff --git a/src/posts/what-is-x-forwarded-for.md b/src/posts/what-is-x-forwarded-for.md index 9e556c0a..917dd47f 100644 --- a/src/posts/what-is-x-forwarded-for.md +++ b/src/posts/what-is-x-forwarded-for.md @@ -1,43 +1,51 @@ --- -title: 'What is X-Forwarded-For All About?' -date: '2024-01-03T15:26' -# cover_image: './header-images/notepad.jpg' +title: 'What is X-Forwarded-For and when can you trust it?' +date: '2024-01-31T17:00' +cover_image: './header-images/chain.jpg' author: Phil Sturgeon authorUrl: https://philsturgeon.com/ --- -The X-Forwarded-For (XFF) HTTP header serves a crucial role in providing insight into the origin of web requests. The header works as a mechanism for conveying the original source IP addresses of clients, and not just one client, but multiple. This list of IPv4 and IPv6 addresses is handy in scenarios where requests traverse several servers, proxies, or load balancers. +The X-Forwarded-For (XFF) HTTP header provides crucial insight into the origin of web requests. The header works as a mechanism for conveying the original source IP addresses of clients, and not just across one hop, but through chains of multiple intermediaries. This list of IPv4 and IPv6 addresses is helpful to understand where requests have really come from in scenarios where they traverse several servers, proxies, or load balancers. -A typical HTTP request goes on a bit of a journey, traversing multiple layers of infrastructure before reaching its destination. Without the `X-Forwarded-For` header, the receiving server would only see the IP address of the last intermediary in the chain, rather than the true client origin. +A typical HTTP request goes on a bit of a journey, traversing multiple layers of infrastructure before reaching its destination. Without the `X-Forwarded-For` header, the receiving server would only see the IP address of the last intermediary in the chain (the direct source of the request) rather than the true client origin. - + -By the time the backend application is seeing an incoming request the IP address of the original client is long forgotten. This is where `X-Forwarded-For` can help out. +![A connection flow from Client to CDN to Load Balancer to Backend app](./x-forwarded-for-flow.png) + +In thie example, by the time the backend application is seeing an incoming request, the IP address of the original client is long forgotten. This is where the `X-Forwarded-For` header can help out. It looks like this: ```http X-Forwarded-For: 28.178.124.142, 198.40.10.101 ``` -The goal here is to give a proxy the chance to say "Alright hang on, I'm forwarding you a request, and this the history of where it came from as far as I know". The proxy will not add its own IP address to the list, because if the receiver of that request cares about who is calling it they can combine the `X-Forwarded-For` with the requests source IP address, e.g.: `req.connection.remoteAddress` in NodeJS. So in this example, the load balancer has said "Hey backend app, I am forwarding you a request that came from this client via the CDN, but it does not pop its own IP in there because the backend app can tell if it's coming from the load balancer or not. +The goal here is to give a proxy the chance to say "Alright hang on, I'm forwarding you a request, and this is the history of where it came from, as far as I know". + +Note that the last proxy will not add its own IP address to the list, because that's already available: if the receiver of the request cares about who is calling it directly, they can combine the `X-Forwarded-For` with the request's source IP address from the incoming connection, e.g: `req.connection.remoteAddress` in NodeJS. + +In this example above, the load balancer has said "Hey backend app, I am forwarding you a request that came from this client, via the CDN", and it doesn't need to pop its own IP in there because the backend app can already tell if it's coming from the load balancer or not. -## What is X-Forwarded-For Used For? +And of course the backend app's own IP is also not included, as it's the one actually receiving the header. -This has a whole load of use cases depending on what you're building. +## What is X-Forwarded-For used for? -- **User Authentication:** Use the header information to ensure that login attempts originate from recognized and authorized locations, and flag the login as suspect if not, triggering 2FA check. +Knowing the original source & processing path of requests has a whole load of use cases depending on what you're building. + +- **User Authentication:** Use the header information to ensure that login attempts originate from recognized and authorized locations, and flag the login as suspect if not, triggering 2FA checks. - **Load Balancing:** Evenly distribute incoming traffic across servers, to ensure optimal performance during busy periods. -- **Data localization:** European Union, Brazil, and China all have privacy laws about keeping data within their zones, and this can help identify those users who need special treatment. +- **Data localization:** European Union, Brazil, China and others have privacy laws about where data can be kept, and this can help identify those users who need special treatment. - **Geographic Content Delivery:** CDNs use `X-Forwarded-For` to determine the user's location and serve content from the nearest server to reduce latency. @@ -53,173 +61,229 @@ This has a whole load of use cases depending on what you're building. - **Logging and Analytics:** log to analyze user traffic patterns and behaviors for statistical purposes, like the geographical distribution of users over a specific time period. -We're talking about security here, but this is a HTTP Request header... so can it not just be completely faked? Is the whole Internet built on a lie?! - -## Can You Trust X-Forwarded-For? +We're talking about security here, but this is an HTTP Request header... so can it not just be completely faked? Is the whole Internet built on a lie?! -You should never trust anything in a HTTP request that is coming from the outside world. Actors can be malicious or misconfigured, but either way the contents of a HTTP request can be completely made up, and somebody could use `X-Forwarded-For` to pretend they're coming from inside your corporate VPN once they know the IP, pretend they're in the same geographic region as a user who's bank account they're trying to log into, or all sorts of other shenanigans. +## Can you trust X-Forwarded-For? -One way to add some control to the `X-Forwarded-For` header is to involve a trusted reverse proxy, and disable direct access to the other proxies/servers/load balancers other than through that proxy. For API developers this might be an API Gateway, but it could also be a CDN like Fastly, Squid Proxy, Cloudflare, etc. If the request is coming through here, assuming that reverse proxy hasn't been hacked, you're probably ok to believe at least some of the IP chain you're seeing. But how? +You should never fully trust anything in an HTTP request that is coming from the outside world, and that includes `X-Forwarded-For` headers. -The further left you look in the field the more room there is for mistakes, as there are more servers which could be misconfigured, and anything that's coming from beyond the left most proxy you control should be treated with suspicion. +Actors can be malicious or misconfigured, but either way the contents of an HTTP request can be completely made up, and somebody could use `X-Forwarded-For` to pretend they're coming from inside your corporate VPN once they know the IP, pretend they're in the same geographic region as a user whose bank account they're trying to log into, or all sorts of other shenanigans. -You can make decisions at the reverse proxy level that change how the field is constructed. For example, nginx can set/override the `X-Forwarded-For` header completely, ditching whatever the client provides, and replacing it with the IP address it is seeing. +Here's an example of how that might look, if the incoming header is blindly trusted: -``` -proxy_set_header X-Forwarded-For $remote_addr; -``` - -Say the client (IP 28.178.124.142) is trying to hide their IP address, or pretend to be somebody else, the request value would be replaced with the actual IP address of the network actor as seen by that server, not just blindly accepting whatever they've said their IP is. - - + + +![An example where a spoofed XFF header value is provided and forwarded](./x-forwarded-for-spoofed.png) -This is the safest approach for when you're not sure how securely and reliably the rest of your call chain is going to be. If other proxies and backend apps are likely to blindly trust the incoming information, or generally make insecure choices (which we'll get into more later) then it's probably safest to completely replace the `X-Forwarded-For` header at that outside-world facing reverse proxy, and ditch any untrustworthy data in the process. +In this case, the client is sending an initial request to us that already includes an `X-Forwarded-For` header with a 1.1.1.1 value. This could be the client's real internal address that's been added by proxy related to the client, or it could be an attempt by the client to confuse the server about the client's IP. It's impossible for us to tell the difference, so we must ignore this, and treat the client address our infrastructure sees (28.178.124.142) as the real source IP. -If you're confident the backend app is able to handle it, you can take whatever they provide, and simply append the IP address being seen by the server on the end of the chain. +One way to gain some control over the `X-Forwarded-For` header is to involve a trusted reverse proxy, and disable direct access at the network level to the backend server and other proxies/servers/load balancers except through that proxy. For API developers this is typically handled by an API Gateway, but it could also be a CDN like Fastly, Squid Proxy, Cloudflare, etc. If the request is coming through a trusted proxy, and that reverse proxy itself hasn't been hacked, you're probably ok to believe at least some of the IP chain you're seeing. But which parts? + +In general, the further left you look in the header the more room there is for mistakes, as there are more servers which could be misconfigured, and anything that's coming from beyond the left-most proxy you control should be treated with suspicion. + +To help with this, you can make decisions at the reverse proxy level that change how the header is constructed. For example, [nginx](https://www.nginx.com/) can override the `X-Forwarded-For` header completely, ditching whatever the client provides, and replacing it with the IP address it is seeing. If all requests come through nginx, this effectively draws a line around your infrastructure, and drops all untrusted values received from outside, allowing all other services within your infrastructure to trust the header. + +You can do that for nginx using the below config: ``` -proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +proxy_set_header X-Forwarded-For $remote_addr; ``` -This is a special bit of functionality in nginx, but most reverse proxies will have similar logic. It will build up the header to maintain whatever the client initially passed, and if they are connecting through any intermediary proxies, so long as those proxies support `X-Forwarded-For`, then that information will be passed along too. +This replaces the `X-Forwarded-For` header with the client's real IP address, dropping anything else. + +This resolves the issue with the client above who appears to be trying to hide their IP address, or pretend to be somebody else, by sending a falsified `X-Forwarded-For` header. This header would be ignored by the CDN, and the request value would be replaced with just the actual IP address as seen by that server rather than being blindly accepted, like so: - + -First of all there's no reason to assume everything in there will be a valid IP address. +![An blocked attempt to spoof an incoming X-Forwarded-For header](./x-forwarded-for-spoof-blocked.png) -At the most basic, an invalid IP address might trigger a 500 Internal Server Error, and that could be a source of DDoS attacks. +Dropping all external values like this is the safest approach when you're not sure how secure and reliable the rest of your call chain is going to be. If other proxies and backend apps are likely to blindly trust the incoming information, or generally make insecure choices (which we'll get into more later) then it's probably safest to completely replace the `X-Forwarded-For` header at that outside-world facing reverse proxy, and ditch any untrustworthy data in the process. -Slightly worse would be blindly exploding on a `,` and sending it off to various other services (like an API call) then all sorts of unexpected things could happen. +On the other hand, if you're confident the backend app is able to handle it, you can accept the incoming values, and simply append the IP address being seen by the server on the end of the chain. This can be helpful if your infrastructure doesn't necessarily have a single entry point, making it harder to guarantee this kind of header sanitization. -### Arbitrary Code Execution +To simply append the incoming address to the header, but preserve the original values too, you can use this nginx config: -Beyond invalid, or faked, there could be literal malicious code in there. - -If a bad actor knew (or guessed) the programming language and logging frameworks being used, and that logging system does not sanitize/escape input, or has a bug that allows code to be executed in the logger, then somebody could be running random code on your server. +``` +proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; +``` -This has been known to happen ([CVE-2021-44228 a.k.a. "Log4Shell”](https://blog.shiftleft.io/log4shell-apache-log4j-remote-code-execution-4f58ed7e74f9)). +This is a special bit of functionality in nginx, but most reverse proxies will have similar logic. It will build up the header to maintain whatever the client initially passed, and if they are connecting through any intermediary proxies, so long as those proxies support `X-Forwarded-For`, then that information will be passed along too. -```nohighlight -X-Forwarded-For: 1.2.3.4,nonsense,${mailicious()},2.2.2.2,28.178.124.142,198.40.10.101 -``` +With this approach, the backend server receives the full chain of everything reported through to them. This can be good or bad, and requires that everyone using this header knows that there can be a fair few problems with this data, and is prepared to handle it correctly. -Any logic using this field should ignore anything that is not a valid IP address, and beyond that it needs to do some basic checks before logging it to a database, like checking the length of string so you're not filling up your DB with trash and potentially making other DDoS and resource management issues. +## Which IP in the list is really the client? -See [OWASP A03:2021 – Injection](https://owasp.org/Top10/A03_2021-Injection/) and [OWASP API4:2023 - Unrestricted Resource Consumption](https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/) for more on what can go wrong there. +In either of the above scenarios, your backend server will eventually end up with a header containing a list of IP addresses. -Whichever approach you pick for the client-facing proxy, make sure every other server in the chain is not directly accessible, or you'll not ever be able to trust any of it. +You might be looking at that list of IPs wondering "which is _the_ client IP" - for almost all the use cases discussed, this is the key value you're interested in. The answer: **reading right to left, the first IP address that is not one of yours**. Although there might be more IPs before this (which could be proxies local to the client, or their ISP) there's no way whatsoever to verify them, and so you have to ignore them entirely and use the first-from-right unknown address. -## Picking the right IP +Note that this logic assumes that your server is _not_ directly accessible. If it is, you need to check the actual request source IP address is one of yours first - effectively treating that as an extra right-most address. -You might be looking at that list of IPs wondering "which is THE client IP". The answer is "Reading right to left, it's first IP address that is not one of yours". When it comes to logging you want to log all of them (escaped and limited), but when it comes to security based use cases there is only one "client IP" you can trust: the one immediately to the left of the last known private/internal IP address, as in, the last "not one of ours" server that's valid, and not internal. +When it comes to logging you want to log all of these IPs (escaped and limited to valid values) but when it comes to security-based use cases there is only one "client IP" you can trust: the one immediately to the left of the last known private/internal IP address. In other words: the last "not one of ours" server that's valid, and not internal. -So if we got a request like this, which one do we use for security checks or geolocation? +So, if we got a request like this, which one do we use for security checks or geolocation? ```nohighlight -X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101 +X-Forwarded-For: 1.2.3.4, 172.16.1.101, 28.178.124.142, 198.40.10.101 ``` -There are two common approaches. +There are two common approaches to actually implement this: -### 1.) Picking by Trusted Proxy List +### 1) Picking by Trusted Proxy List -One approach is to look at the specific IPs and see if they are recognized, going from the right until you see an IP you don't recognize. +One approach is to look at the specific IPs and see if they are recognized, going from the right until you see an IP you don't recognize. This requires maintaining a list of IPs (or at least IP ranges) for your internal infrastructure. -- `198.40.10.101` would be flagged as one of yours buy the same list. -- `28.178.124.142`. Not one of yours? Not invalid? Not internal? Great, that's the client, and it looks like they're in Ohio, USA. Serve them content from the American servers, and no data protection required because they don't care about privacy laws. +- Let's assume that `198.40.10.101` is flagged as one of your own servers in your list. +- Then you look at `28.178.124.142`. Is that not one of yours? Not invalid? Not internal? Great - that's the client, and it looks like they're in Ohio, USA. Serve them content from the American servers, and no data protection required because they don't care about privacy laws. -One mistake would be to see for the first to the left of all internal IPs, because that might notice `172.16.1.101` which is an [internal IP according to IANA](https://www.lifewire.com/what-is-a-private-ip-address-2625970). Yes, it is internal, but it's not a known and trusted internal IP you control. That has been reported to you in the HTTP request, possibly for valid reasons (the client is using some sort of intermediary server), or possibly malicious reasons (they want you to think their real IP address is `1.2.3.4` and hoped that would trick you). +One mistake here would be to look one to the left of the first-from-left internal IP. If you do so, that might notice `172.16.1.101` which is an [internal IP according to IANA](https://www.lifewire.com/what-is-a-private-ip-address-2625970). Yes, it is internal, but it's not a known and trusted internal IP you control. That has been reported to you in the HTTP request, possibly for valid reasons (the client is using some sort of intermediary server), or possibly malicious reasons (the client is really `28.178.124.142` but they want you to think their real IP address is `1.2.3.4` and hoped this would trick you). That can be a pretty complicated approach and requires the backend to know quite a lot about the infrastructure involved, and might be even harder in a cloud environment where IPs might be changing a lot, but it's doable. -### 2.) Picking by Trusted Proxy Count +### 2) Picking by Trusted Proxy Count + +Instead of looking at the specific IPs, the number of trusted proxies between the internet and the backend server can be configured. This can be more flexible that tracking IP ranges, but requires careful maintainence whenever layers of intermediate infrastructure are changed, and can be very challenging if there are multiple paths to the same servers. -Instead of looking at the specific IPs, the number of trusted proxies between the internet and the backend server is configured. +To do this, the `X-Forwarded-For` IP list is searched from the right, **skipping the number of proxies minus one**. -The `X-Forwarded-For` IP list is searched from the rightmost by that count minus one. +![A request path, from Client to CDN to Load Balancer to Backend](./x-forwarded-for-path.png) - -flowchart LR - A(Client) --> B(CDN) - B --> C(Load Balancer) - C --> D[Backend App] - +For example, in this infrastructure we know we have two intermediaries: the CDN & the load balancer. +Let's assume the server receives something like this: ```nohighlight -X-Forwarded-For:1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101 +X-Forwarded-For: 1.2.3.4, 172.16.1.101, 28.178.124.142, 198.40.10.101 ``` -Seeing as the IP address of the backend is not in X-Forwarded-For, it is not included in the count, so we're going to look at how many proxies are to the left before we get to the outside Internet. +When reading this, remember that the backend is the one receiving this header, so it doesn't modify it or appear in it, and everybody else adds the _previous_ step, so the load balancer isn't included either (this is why we minus one from our count). -1. `198.40.10.102` - Load Balancer +So, to understand this header we're going to count from the right, counting how many proxies are to the left before we get to the outside Internet. Remember that we could the number of intermediaries _minus one_ - so in this case we just skip the one right-most value (`198.40.10.101`). The logic is: + +1. Load Balancer - this IP is not shown in the header (but is available to the backend server anyway, because it's the direct source of the request connection). 2. `198.40.10.101` - CDN 3. `28.178.124.142` - Client IP -Here the trusted proxy count would be 2, and that can be popped into configuration somewhere. The backend app can split those 2 off IPs off, and the next one will be the client IP address. +Code to do this for yourself could look something like this: ```javascript const headers = { - "X-Forwarded-For": "1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101,198.40.10.102" + "X-Forwarded-For": "1.2.3.4,172.16.1.101,28.178.124.142,198.40.10.101" } -const config = { - trusted_proxy_count: 2 +const config = { + trusted_proxy_count: 2 } -const clientIp = headers["X-Forwarded-For"] - // Split the string into multiple parts - .split(',') - // If the count is 2, we want the 3rd from the end, - // which means flipping to negative and subtracting one more - // then grabbing the first item in the list with [0] - .slice(-1 - config.trusted_proxy_count)[0]); - +const ips = headers["X-Forwarded-For"] + .split(',') // Get the separate IPs + .reverse(); // Count from the right +const clientIp = ips[config.trusted_proxy_count - 1]; + console.log(clientIp) // "28.178.124.142" ``` +_(This is simplified for readability - note that this doesn't handle any of the broader security concerns we'll discuss below)_ Basically if there are three reverse proxies, the last two IP addresses will be internal. -If your infrastructure is simple and there is only one reverse proxy, that proxy will add the client's IP address, so the rightmost address can be used. +If your infrastructure is simple and there is only one reverse proxy, that proxy will add the client's IP address, so the rightmost address can be used directly (as long as you're sure that the backend server is _only_ accessible via the proxy server or you always validate that the IP of the received request itself is the reverse proxy's IP). -## Alternatives & Standards +## Parsing X-Forwarded-For headers + +Above we've talked about which parts of the data you read from the X-Forwarded-For header you can trust. But there are also some risks to manage in the parsing stage, before you even start looking through the values themselves. + +In most cases, this parsing should be handled for you by a library or your server framework, but it's important to understand how that works, and to test that this is handled correctly in your environment. + +### Invalid IP Addresses + +First of all, there's no reason to assume everything in there will always be a valid IP address. + +A client can include anything. If your code assumes valid data in a specific format, it can easily crash, typically resulting in 500 Internal Server Error for the client and potential other side effects server-side, and opening the door to all sorts of DDoS attacks. + +Even valid data can be challenging, as there's a few different possible formats here. The IPv4 address format is fairly simple, standard & well recognized (IPv4 addresses should be 4 numbers, each from 0 to 255, separated by dots) and so this is generally not a huge problem, but with the rising use of IPv6 this gets quite a bit more complicated, and it's worth familiarizing yourself with the [IPv6 address format](https://en.wikipedia.org/wiki/IPv6_address) if you're not already. -`X-Forwarded-For` is not part of any current specification, it's a convention implemented by various bits of software and services in a similar way, but has not been standardized by anyone like the IETF. +In some scenarios, the header may also include a port on the addresses too (with a `:$PORT` suffix) - typically you'll want to just ignore this, but it's worth testing that that is handled correctly. -The IETF folks deprecating X- headers since [RFC 6648: Deprecating the "X-" Prefix and Similar Constructs](https://datatracker.ietf.org/doc/html/rfc6648) in 2012, and if you're interested in why Mark Nottingham gives great backstory on this in *[Stop it with the X- Already! (2009)](https://www.mnot.net/blog/2009/02/18/x-)*. In part the effort to standardize common X- extensions is down to a single specification making implementations more reliable, but in practice its also because the convention that was first imagined is often overly simplistic, missing important use-cases not thought of when first conceived. +Wikipedia has some [useful examples](https://en.wikipedia.org/wiki/X-Forwarded-For#Format) of common formats. + +### Separator parsing + +Between each IP address, a simple comma with optional whitespace is used as a separator. + +This too has some parsing gotchas. There's a few ways you could parse this wrong, and doing so would open doors to [request smuggling](https://en.wikipedia.org/wiki/HTTP_request_smuggling), where an intermediate server interprets data differently to the backend server, and shared assumptions break down. + +Blindly splitting on a simple `,` character and sending the result off to various other services (like an API call) means all sorts of unexpected things could happen. + +You'll want to watch out for trailing or leading commas here, make sure you trim whitespace between values, and again reject any unexpected invalid data here aggressively to keep things clean & under control. + +### Multiple headers + +It's quite possible for a request to include multiple `X-Forwarded-For` headers! There's rarely any good reason to do this, but similar to these other issues, you should make sure you handle it correctly. + +If this happens, the [HTTP spec](https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2) says: + +> A recipient MAY combine multiple header fields with the same field name into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field value to the combined field value in order, separated by a comma. + +I.e. it's technically correct to combine them together in order. That said, trusting that this is safe & correct requires assuming that upstream proxies have done the same, or you're exposed to request smuggling here too. + +Up to you, but in practice this should be extremely rare in normal usage, so if you're not sure I'd be inclined to drop all duplicated headers entirely. + +### Arbitrary code execution? + +Beyond invalid or faked addresses, it's technically possible to include literal malicious code in here! + +If a bad actor knew (or guessed) the programming language and logging frameworks being used, and if that logging system does not sanitize/escape input or has a bug that allows code to be executed in the logger, then somebody could be running random code on your server. + +This is particularly notable given vulnerabilities like [CVE-2021-44228 a.k.a. "Log4Shell”](https://blog.shiftleft.io/log4shell-apache-log4j-remote-code-execution-4f58ed7e74f9) where logging a string could indeed potentially run arbitrary code. + +Given a request like: + +```nohighlight +X-Forwarded-For: 1.2.3.4,nonsense,${malicious()},2.2.2.2,28.178.124.142,198.40.10.101 +``` + +If a service affected by this vulnerability attempted to log that via log4j, it could run arbitrary code, creating major problems. + +To protect against this, remember to validate inputs first - any logic using this field should ignore anything that is not a valid IP address. Beyond that, it's sensible to do some basic checks before logging this to a database, like checking the length of string so you're not filling up your DB with trash and potentially making other DDoS and resource management issues. + +See [OWASP A03:2021 – Injection](https://owasp.org/Top10/A03_2021-Injection/) and [OWASP API4:2023 - Unrestricted Resource Consumption](https://owasp.org/API-Security/editions/2023/en/0xa4-unrestricted-resource-consumption/) for more on what can go wrong there. + +Whichever approach you pick for the client-facing proxy, make sure every other server in the chain is not directly accessible, or you'll not ever be able to trust any of it. + +## Alternatives & Standards ### Forwarded Header -Whilst the `X-Forwarded-For` is popular, and generally doesn't suffer from compatibility issues, there's room for making it better, and that takes the form of the `Forwarded` header defined by [RFC 7239: Forwarded HTTP Extension](https://datatracker.ietf.org/doc/html/rfc7239) finalized in 2014. +`X-Forwarded-For` is very widely used, but it's not part of any current formal specification. It's a convention implemented by various bits of software and services in a similar way, but has not been standardized by anyone like the IETF. + +The IETF folks have been deprecating X- headers since [RFC 6648: Deprecating the "X-" Prefix and Similar Constructs](https://datatracker.ietf.org/doc/html/rfc6648) in 2012 (if you're interested in why, Mark Nottingham gives great backstory on this in [Stop it with the X- Already!](https://www.mnot.net/blog/2009/02/18/x-)). In part the effort to standardize common X- extensions is down to a single specification making implementations more reliable, but in practice its also because the convention that was first imagined is often overly simplistic, missing important use-cases not thought of when first conceived. + +Whilst the `X-Forwarded-For` is popular, and generally doesn't suffer from compatibility issues, there's room for making it better, and that takes the form of the `Forwarded` header defined by [RFC 7239: Forwarded HTTP Extension](https://datatracker.ietf.org/doc/html/rfc7239) finalized in 2014: ``` Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43 ``` -It's really similar to `X-Forwarded-For`, but also incorporates functionality from `X-Forwarded-Proto` which helps define the protocols (HTTP or HTTPS) used in the chain instead of the IP. By combining `-For` and `-Proto` into a single header there's less room for confusion stitching things together. +It's really similar to `X-Forwarded-For`, but also incorporates functionality from `X-Forwarded-Proto`. By combining `-For` and `-Proto` into a single header there's less room for confusion stitching things together. ``` X-Forwarded-For: 192.0.2.172 @@ -229,15 +293,13 @@ X-Forwarded-For: 192.0.2.43, 2001:db8:cafe::17 Forwarded: for=192.0.2.43, for="[2001:db8:cafe::17]" ``` -_Examples from [MDN Web Docs: HTTP > HTTP headers > Forwarded](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded)._ - -Whether you should use `X-Forwarded-For` or `Forwarded` version can be a tricky question. +_(Examples from [MDN Web Docs: HTTP > HTTP headers > Forwarded](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded))_ -Does all the tooling in your infrastructure support it? Probably, but you'll want to check. +Whether you should use `X-Forwarded-For` or `Forwarded` version can be a tricky question, and typically depends on the tools and service providers you're using. Does all the tooling in your infrastructure support it? -Does it matter for any practical reason when you can just use `X-Forwarded-For` or is this just vibes and "being proper"? Well, it has one major benefit that might make it worth the effort of checking compatibility: Forwarded has extensibility. +Does it matter for any practical reason when you can just use `X-Forwarded-For`, or is this just vibes and "being proper"? There is has one major benefit that might make it worth the effort of checking compatibility: Forwarded has extensibility. -With `X-Forwarded-For`, you have to figure out which IP address is the client IP with hardcoded rules such as “take the 3rd last IP address”. Whether you're using lists or counts, it's not just a faff, it's subject to change as your infrastructure evolves. +With `X-Forwarded-For`, you have to figure out which IP address is the client IP with hardcoded rules such as “take the 3rd last IP address”. Whether you're using lists or counts, it's not just a faff, it's subject to change as your infrastructure evolves. With `Forwarded`, [as nginx suggest](https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/), your trusted client-facing proxy could include a secret token to identify itself: @@ -245,19 +307,46 @@ With `Forwarded`, [as nginx suggest](https://www.nginx.com/resources/wiki/start/ Forwarded: for=12.34.56.78, for=23.45.67.89;secret=egah2CGj55fSJFs, for=10.1.2.3 ``` -That seems like a pretty solid reason to consider using the standard version. +Additionally, `Forwarded` allows including other fields like `proto=`, `by=`, `host=`, and potentially others in future. -## Via Header +Really, the only true downside here is the existing much wider use & support for `X-Forwarded-For`, but there are solid reasons to aim to use `Forwarded` where possible, and to plan to migrate tooling in that direction in future. -There is another similar HTTP header: `Via`, defined in RFC 9110 and finalized in 2022. This header has more of a focus on the protocol (HTTP or HTTPS) and the version (`HTTP/1.1 proxy.example.re, 1.1 edge_1`). This information is intended to help figure out if connection has been downgraded at any point, whether that's from HTTP/2 to 1.1, or from HTTPS to HTTP. +### X-Forwarded-Host/Proto -As it also adds the hostname of proxy, and some optional information about the specific product and version of the proxy, it may seem pretty similar for `X-Fowarded-For` and `Forwarded`, but the `Via` header is more for information/debugging or identifying and working around buggy proxies. +There are actually two other headers in the XFF family: + +* `X-Forwarded-Host`: this allows a proxy to forward the originally provided `Host` header from an upstream client +* `X-Forwarded-Proto`: this allows a proxy to forward the originally used protocol (`http` or `https`) + +Neither is widely used, but it's worth being aware of these in case you do have a specific need for extra data about the original client request in future. + +### Via Header + +There is another similar HTTP header: `Via`, defined in RFC 9110 and finalized in 2022. This header exposes the data of the intermediaries on the request path themselves, rather than the client IPs they saw (i.e. each proxy will add its own address, not the address of the client from its perspective). + +This also has more of a focus on the protocol (HTTP or HTTPS) and the version (`HTTP/1.1 proxy.example.re, 1.1 edge_1`). This information is intended to help figure out if connection has been downgraded at any point, whether that's from HTTP/2 to 1.1 or from HTTPS to HTTP, and to make backend servers aware of the capabilities of the full connection path. + +As it also adds the hostname of proxy, and some optional information about the specific product and version of the proxy, it may seem pretty similar for `X-Forwarded-For` and `Forwarded`, but the `Via` header is more for information/debugging or identifying and working around buggy proxies. + +### And others... + +`X-Forwarded-For` is widely supported and easily the most popular solution to this problem, but it's definitely not the only one. In addition to the relatively standard options above, there's a few other non-standard headers available, which do similar things in certain contexts: + +* `X-Real-IP`: how this is used varies quite a bit - some systems use it to forward just a single IP that they consider the 'real' client, some use it just like XFF, and who knows what else. This is rarely supported, and generally not recommended unless you're sure you know what it means in your context. +* `​​CF-Connecting-IP`: Cloudflare's version of the real IP header, listing the client IP specifically. +* `Ali-CDN-Real-IP`: Alibaba Cloud CDN's own version of this, potentially with minor variations (hard to tell). +* `X-NF-Client-Connection-IP`: this is Netlify's [officially recommended](https://answers.netlify.com/t/is-the-client-ip-header-going-to-be-supported-long-term/11203) header to get the client IP (they do not support XFF or others, even though they might still appear in your request headers!) +* `X-Vercel-Forwarded-For`: Vercel's version of XFF, with some additional (but unclear) extra validation +* `X-Vercel-IP-{...}`: a set of Vercel headers for the client's country, city, timezone, and other details their edge servers automatically infer. More info in [their docs](https://vercel.com/docs/edge-network/headers). +* `Cache-Status`, `X-Cache-Status`, `X-Served-By`, etc: this is the same concept in reverse. This header is included in responses, and provides response path information for clients, letting them know which caches processed the request, and whether the response came fresh directly from the backend server or from a cache en route. For more information, see [New HTTP Standards for Caching](https://httptoolkit.com/blog/status-targeted-caching-headers/). ## Summary -Now you know what X-Forwarded-For and Forwared are for, and can leverage that knowledge to do some handy stuff if you like. Maybe that's targeted advertisements, but maybe it's something more meaningful like serving content from the closest server to [reduce the carbon impact of your data transmission](https://learn.greensoftware.foundation/introduction), or using it as an extra data point in flagging scammers trying to access to your users accounts. +Now you know what `X-Forwarded-For` and `Forwarded` are for, and can leverage that knowledge to deliver localized content, support rate limiting, flag likely fraud, or even serve content from the closest server to [reduce the carbon impact of your data transmission](https://learn.greensoftware.foundation/introduction). + +Use these powers wisely, and remember that this depends on close integration between backend & deployment infrastructure development, so don't sneak them into changes without talking to the rest of your team first! -Use these powers wisely, and don't sneak them in at the infrastructure changes without talking to the backend developers managing the systems this could effect. +_Want to inspect real clients' headers for yourself right now, or try spoofing your own headers and see what happens? Fire up **[HTTP Toolkit](https://httptoolkit.com/)**, intercept & debug your Android/web/Docker/other traffic, set some breakpoint rules to modify it, and explore this up close._ ## Further Reading @@ -265,4 +354,4 @@ Use these powers wisely, and don't sneak them in at the infrastructure changes w - [MDN Web Docs: X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) - [MDN Web Docs: Forwarded](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Forwarded) - [Using Forwarded in NGINX](https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/) -- [Cloudflare Fundamentals: HTTP request headers](https://developers.cloudflare.com/fundamentals/reference/http-request-headers/) +- [Cloudflare Fundamentals: HTTP request headers](https://developers.cloudflare.com/fundamentals/reference/http-request-headers/) \ No newline at end of file diff --git a/src/posts/x-forwarded-for-flow.png b/src/posts/x-forwarded-for-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..973c16683a3a94fc198ceb90b1073f4759a1a1b3 GIT binary patch literal 27154 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

$H(z` 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 r>Yn?53}62LTm0`q)PJ=W4*sT&nf& literal 0 HcmV?d00001 diff --git a/src/posts/x-forwarded-for-path.png b/src/posts/x-forwarded-for-path.png new file mode 100644 index 0000000000000000000000000000000000000000..03221035b84039ae380454a6094d6475615e5bd9 GIT binary patch literal 10696 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 literal 0 HcmV?d00001 diff --git a/src/posts/x-forwarded-for-spoof-blocked.png b/src/posts/x-forwarded-for-spoof-blocked.png new file mode 100644 index 0000000000000000000000000000000000000000..3dcabd58edbd47a19129ec0b354bf48d4965b2a1 GIT binary patch literal 41840 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 S)W5lHLA?Ffc5GYU#NPoecvolu literal 0 HcmV?d00001 diff --git a/src/posts/x-forwarded-for-spoofed.png b/src/posts/x-forwarded-for-spoofed.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9512a16ee5e6f63bf4906985f69d00b805fe97 GIT binary patch literal 38037 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 dzPxjtnl3=