Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

explicitly check for unencoded characters when allowReserved is false #63

Open
karenetheridge opened this issue Sep 24, 2023 · 2 comments
Labels
blocked blocked on something else wontfix This will not be worked on

Comments

@karenetheridge
Copy link
Owner

allowReserved defaults to false, but we aren't checking that unencoded characters are appearing in the query parameters section of the request URI -- mojo just happily url-unescapes what it sees, without checking if some things already were un-escaped.

@karenetheridge
Copy link
Owner Author

karenetheridge commented Sep 25, 2023

This is very difficult to do because we don't usually have access to the raw request -- we get it as a Mojo::Message::Request which has already been parsed and the query parameters normalized.

Also, Mojolicious serializes to + in query parameters rather than to %20, which is common but still incorrect per RFC3986: https://stackoverflow.com/questions/2678551/when-should-space-be-encoded-to-plus-or-20

And also, the specified serialization formats all violate the RFC as well: OAI/OpenAPI-Specification#1942 (comment)

@karenetheridge
Copy link
Owner Author

see also OAI/OpenAPI-Specification#3759

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked blocked on something else wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

1 participant