Skip to content

Remove semi-colon as query string separator #2887

@FroMage

Description

@FroMage

Version

4.5.27

Context

As reported in Quarkus at quarkusio/quarkus#50685 it seems Vert.x Web treats semicolons as separators in HTTP query strings, which is not supposed to be the case according to the various HTTP specs.

The only mention of semicolon in specs as separator I can find is on https://en.wikipedia.org/wiki/Query_string:

This convention is a W3C recommendation.[3] In the recommendations of 1999, W3C recommended that all web servers support semicolon separators in addition to ampersand separators[6] to allow application/x-www-form-urlencoded query strings in URLs within HTML documents without having to entity escape ampersands. Since 2014, W3C recommends to use only ampersand as query separator.[7]

In practice, I've never seen them being used as separators in query strings ever. Mozilla agrees with this.

Apparently, Netty supports the option of not treating them as separators in QueryStringDecoder: netty/netty@7d6d953

We should probably make this into a configurable option, that could default to whatever you want for Vert.x, and we'll default to "do not treat semicolons as separator" in Quarkus at https://github.com/vert-x3/vertx-web/blob/master/vertx-web/src/main/java/io/vertx/ext/web/impl/RoutingContextImpl.java#L447

Steps to reproduce

No response

Do you have a reproducer?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions