bifrost-gateway icon indicating copy to clipboard operation
bifrost-gateway copied to clipboard

log warning about "URL query contains semicolon"

Open lidel opened this issue 2 years ago • 2 comments

2023/02/20 14:08:03 http: URL query contains semicolon, which is no longer a supported separator; parts of the query may be stripped when parsed; see golang.org/issue/25192
2023/02/20 14:08:36 http: URL query contains semicolon, which is no longer a supported separator; parts of the query may be stripped when parsed; see golang.org/issue/25192
2023/02/20 14:09:07 http: URL query contains semicolon, which is no longer a supported separator; parts of the query may be stripped when parsed; see golang.org/issue/25192
2023/02/20 14:29:58 http: URL query contains semicolon, which is no longer a supported separator; parts of the query may be stripped when parsed; see golang.org/issue/25192

lidel avatar Feb 20 '23 16:02 lidel

As per https://github.com/golang/go/issues/25192, it seems that some of the requests we are getting include a non-escaped (?) semi-colon in the URL query. It would be great if we could identify those requests to see what is actually being requested and why is there a semicolon in the URL query.

For example, accessing /ipfs/bafkreicysg23kiwv34eg2d7qweipxwosdo2py4ldv42nbauguluen5v6am?download=true;filename=hello.txt will trigger that warning. My two ideas of why's this happening are:

  1. Some old client is making requests using ; as a separator instead of &
  2. Some clients are not properly escaping the value of the query values. Maybe they want a filename=something;something.go and they're not escaping properly (I don't know why you would want that, but it is possible)

hacdias avatar Mar 02 '23 10:03 hacdias

Thanks, makes sense.

We are unable to control broken/legacy clients, nor should we write any special code for this – the linked https://github.com/golang/go/issues/25192 is a good read how printing this warning was the only way to ping people without breaking existing apps.

I see golang removed this warning last week: https://github.com/golang/go/commit/133e0bca0be23980604ee98589ddcacdb1262afd so no action needed on our end – will go away when we upgrade Dockerfile to go 0.21.

Let's keep this open until then.

lidel avatar Mar 03 '23 20:03 lidel