Assigned
Status Update
Comments
sh...@google.com <sh...@google.com> #2
Hello,
Thank you for reaching out.
Google Cloud Product team is aware of this issue. There is no ETA at this time, however, you can keep track of the status by following this thread.
br...@gmail.com <br...@gmail.com> #3
Hello,
I'm blocked by the same problem.
A simple url like :
https://myservice.com/api?name=NA%27ME is replaced by
https://myservice.com/api?name=NA'ME
(here %27 is decoded to ')
As the issue creator, i'm trying to sign my urls ... but since the url is modified by Cloud run, i'm stuck.
I see that the issue is assigned.
However, in the meantime, is it possible to have an exhaustive list of all the characters that are decoded so i can workaround this issue ?
Thanks
I'm blocked by the same problem.
A simple url like :
(here %27 is decoded to ')
As the issue creator, i'm trying to sign my urls ... but since the url is modified by Cloud run, i'm stuck.
I see that the issue is assigned.
However, in the meantime, is it possible to have an exhaustive list of all the characters that are decoded so i can workaround this issue ?
Thanks
[Deleted User] <[Deleted User]> #4
We're experiencing the same problem with Twilio webhooks. Such a shame
[Deleted User] <[Deleted User]> #5
We had to write our own "url undecoder proxy" as a nasty workaround
va...@google.com <va...@google.com>
ku...@google.com <ku...@google.com>
jo...@pingu-solutions.com <jo...@pingu-solutions.com> #6
I guess this is related, as I am not able to run a certain Docker container on Cloud Run.
The internal urls contain characters like %5B inside the url. Instead of finding the asset, i'll receive a 404 error.
This does not happen with other providers. I did not test it on GKE though.
I am commenting, as this still seems to be an issue. At least in my case.
The internal urls contain characters like %5B inside the url. Instead of finding the asset, i'll receive a 404 error.
This does not happen with other providers. I did not test it on GKE though.
I am commenting, as this still seems to be an issue. At least in my case.
Description
Context
I was trying to understand WHY 😵💫 my app (Image-Charts.com) works on Google Kubernetes Engine (GKE) but the same container does not work on Cloud-Run.
How to reproduce
To be precise, why the signed URL (HMAC) below works on GKE and not on Cloud-Run
Note that HMAC signature (ichm query parameter) is computed like this:
My main intuition was that cloud-run had some internal reverse proxies that changes part of the URL on the fly.
If that's true, let's find what encoded characters Cloud-Run would automatically decode in the URL query part before reaching your app:
To run this experiment I've set a special route on Image-Charts that outputs what Image-Charts http server got as part of url.search.
On Google Kubernetes Engine (GKE), Image Charts API got an unmodified query string:
On Google Cloud Run however, things are different:
Yep. Characters like ")", "(", "a", "~" were converted on the fly by some Cloud Run internal proxy.
Now lets filter this for better readability:
These are the characters decoded on the fly by cloud-run internal proxy thus breaking HMAC and sadly its not reversible.
Other information (workarounds you have tried, documentation consulted, etc):
I could not code a workaround because the change done by the intermediate cloud run proxy is not reversible (it has information loss).
Impact
Every potentiel Cloud Run customer that relies on HMAC based on the query string (used as raw text) will have the same issue as me :)