Skip to content

Conversation

toadjaune
Copy link

@toadjaune toadjaune commented Apr 30, 2025

Hi,

We recently ran into an issue, where we have a FTP password containing the / character. This breaks the URL parsing with the current code.

We could try to work around the issue with tweaks to the regex detection logic, but no matter what we do, some characters will still break it, as there has to be a way for our code to determine where each part of the URL stops.

The proposed (and implemented here) fix is to consider that since we're taking a URL as input and parsing it, we might as well rely on standard URL escaping to deal with any character susceptible from breaking URL parsing. As far as I can tell, the affected characters are (at least) :/@#?%.

This PR therefore reverts a good chunk of #1329, and adds an extra url decoding of the parsed values.

This is a breaking change, as characters that are currently accepted may need to be escaped with this new code. I'm not sure how you want to handle that, maybe a major version bump ? (Although, if you're willing to go with that, I have other breaking changes that I want to suggest, I'll open separate PRs for them as soon as I can)

Documentation updates are probably needed too, but I'd rather have your opinion on the topic before redacting anything !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant