We're seeing a weird issue where occassionally we're seeing requests come in that have been re-encoded by something outside of our control. For example, the application will generate a link like:
/some/endpoint_is_here?a=1&b=2
And what the server receives is:
/some/endpoint%5is%5here?a=1%26b=2
I've verified the issue isn't with our application stack and we only see if from two of our clients locations (but mostly from one location). This doesn't happen frequently, like I would say like 0.000001% of all requests (maybe even lower). We see it a few times a week out of millions of requests.
What I suspect is happening is that either some software running in the client or site-wide (like a web firewall) is running that is altering the request and for some reason believes the URL needs to be re-encoded (or it's just a bug in the software).
I know for a fact that the company we see the issue with most has some kind of outgoing web firewall/proxy inspection tool that they use.
Has anyone else seen this behavior? Anyone know what might be causing this?
Perhaps it's a bug with CloudFlare (which are production environment uses), but since I've only ever seen the issue from two client locations, I suspect it's more likely related to something in their environments.
I've inspected all the HTTP headers of the requests and there's nothing there that help pinpoint to a root cause. I was hoping that if there was a some kind of web firewall re-writing the request that there might be some kind of signature that indicate what it was, but there's nothing there that seems to indicate anything unusual.
I'm trying to figure out the best way to resolve the issue.