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

IDNA2008 DISALLOWED characters are permitted in URL #41977

Closed
GuillaumeBlanchet opened this issue Feb 14, 2022 · 1 comment
Closed

IDNA2008 DISALLOWED characters are permitted in URL #41977

GuillaumeBlanchet opened this issue Feb 14, 2022 · 1 comment
Labels
whatwg-url Issues and PRs related to the WHATWG URL implementation. wrong repo Issues that should be opened in another repository.

Comments

@GuillaumeBlanchet
Copy link

Version

v17.5.0

Platform

Linux deskt 5.13.0-28-generic #31~20.04.1-Ubuntu SMP Wed Jan 19 14:08:10 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Subsystem

No response

What steps will reproduce the bug?

Take any character disallowed in domain names in the list from the internet standard (RFC) here and insert it in a URL (e.g. \u0556):
$ node -i
> new URL('http://\u0556.com');

How often does it reproduce? Is there a required condition?

All the time.

What is the expected behavior?

Uncaught TypeError [ERR_INVALID_URL]: Invalid URL
at __node_internal_captureLargerStackTrace (node:internal/errors)
at new NodeError (node:internal/errors)
at onParseError (node:internal/url)
at new URL (node:internal/url) {
input: 'http://\u0556.com/',
code: 'ERR_INVALID_URL'
}

What do you see instead?

URL {
href: 'http://xn--0bb.com/',
origin: 'http://xn--0bb.com',
protocol: 'http:',
username: '',
password: '',
host: 'xn--0bb.com',
hostname: 'xn--0bb.com',
port: '',
pathname: '/',
search: '',
searchParams: URLSearchParams {},
hash: ''
}

Additional information

> new URL('http://\u0100.com');
> new URL('http://\u0102.com');
> new URL('http://\u0104.com');

and so on, produce the same behavior, violating the IDNA2008 protocol.

@aduh95
Copy link
Contributor

aduh95 commented Feb 14, 2022

Node.js follows the WHATWG URL spec, which does not forbids those characters it seems: https://url.spec.whatwg.org/#host-miscellaneous. This behavior is consistent with Firefox, Chromium, Safari, and Deno.

If you think this API should restrict the allowed characters, please open an issue on their repo: https://github.com/whatwg/url.

I'm going to close this now, but if you think I missed something don't hesitate to re-open or to ask more questions.

@aduh95 aduh95 closed this as completed Feb 14, 2022
@aduh95 aduh95 added whatwg-url Issues and PRs related to the WHATWG URL implementation. wrong repo Issues that should be opened in another repository. labels Feb 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
whatwg-url Issues and PRs related to the WHATWG URL implementation. wrong repo Issues that should be opened in another repository.
Projects
None yet
Development

No branches or pull requests

2 participants