Personal opinion: Disallowing the trailing dots should not cause any issues at all; I think we should just do this (as a bug fix).
Since the W3C standard and the IETF standard agree on only permitting the 4-number form embedded in IPv6 addresses, i think it's a safe change to police that restriction too. The shortening of pure IPv4 literal addresses is the only case where it might be reasonable to measure usage; I suppose that's the one you've been measuring already. On Thu, Jan 26, 2023 at 6:33 AM Jiacheng Guo <g...@google.com> wrote: > Much thanks for your advice and checking the standard for the correct > behavior. > I'd like to provide some more detailed context here. > The proposed change is a part of the URL section in interop 2023. > Currently our URL parser treats [::1.2.3.] as shortened IPv4 addresses > embedded in IPv6 and this is causing a bunch of WPT test failures. > The URL RFC requires IPv4 address to consist of concisely four parts. > I revisited the URL web standard and it found that it allows shortened > IPv4 addresses without trailing dots and disallows embedding them into IPv6 > addresses. > > Currently in chrome: > - We are not validating the trailing dots in IPv4 and IPv4-embedded IPv6 > addresses. > - We allow shortened IPv4 addresses and embedding them into IPv6 addresses. > > My new proposal is to check the trailing dots in IP addresses and remove > support for embedding shortened IPv4 addresses in IPv6 addresses. > Does this make sense? Would you advise additional usage metrics to be > collected? > > Much appreciated > Jiacheng Guo > > On Thu, Jan 26, 2023 at 7:29 AM Harald Alvestrand <h...@google.com> wrote: > >> Checking the spec is always wise: >> >> https://www.rfc-editor.org/rfc/rfc3986#section-3.2.2 says that only the >> 4-digit form of IPv4 address should be supported (4 numbers from 0-255). >> There is no trailing dot, so that one is illegal. >> >> The RFC goes on to say ( >> https://www.rfc-editor.org/rfc/rfc3986#section-7.4 ) about the >> non-4-number form: >> >> "These additional IP address formats are not allowed in the URI syntax >> >> due to differences between platform implementations. However, they >> can become a security concern if an application attempts to filter >> access to resources based on the IP address in string literal format. >> If this filtering is performed, literals should be converted to >> numeric form and filtered based on the numeric value, and not on a >> prefix or suffix of the string form." >> >> >> So we've been inconsistent with the IETF URI spec since at least 2005, and >> it may be time to fix the bug. >> >> But properly! >> >> >> >> On Wed, Jan 25, 2023 at 11:22 PM Harald Alvestrand <h...@google.com> >> wrote: >> >>> The two addresses here are IPv6 addresses, not IPv4 addresses, as >>> evidenced by the :: marker. >>> The first form is an IPv6 with embedded IPv4, and it has a trailing dot >>> that I do not understand at all, I think it's not legal syntax. >>> The second form is two numbers in hex, so the byte value of the last 4 >>> bytes should be 0x01020003. Which would be equivalent to the first one if >>> there was no trailing dot, because that's the shape of an IPv4 Class B >>> address, where the last number represents a 16-bit number, not an 8-bit >>> number. >>> >>> I'm not sure what you mean by "shortened IPv4 address" - if you mean >>> IPv4 addresses with less than 3 dots (class B and class A addresses, when >>> classes existed) - I think that they are indeed rarely used, since modern >>> IPv4 networks aren't allocated in classes any more. >>> >>> I would want to check with other browser vendors on whether they think >>> it's worth deprecating this syntax - it's been standardized since IPv4 was >>> introduced, so it's a LONG tradition that you are breaking, and unless we >>> agree with the others first, we're breaking compatibility. >>> >>> Harald >>> >>> >>> On Wed, Jan 25, 2023 at 4:52 PM 'Jiacheng Guo' via blink-dev < >>> blink-dev@chromium.org> wrote: >>> >>>> Hi everyone >>>> >>>> I plan to remove the shortened IPv4 address support in the URLs such as >>>> 127.1 and 192.168.1. >>>> WPT failures are reported because of this: >>>> <a>: Setting <http://example.net/>.host = '[::1.2.3.]'!EQ(" >>>> http://example.net/", "http://[::102:3]/") >>>> >>>> I've added an UMA to collect data about whether people are inputting >>>> such kinds of addresses in the omnibox. >>>> Data in beta showed that only 0.04% of IPv4 addresses input in the >>>> omnibox URL are in this form. >>>> We'd like to remove the support as a part of the URL interop. >>>> >>>> Jiacheng Guo >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "blink-dev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to blink-dev+unsubscr...@chromium.org. >>>> To view this discussion on the web visit >>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJQw1Nx7a-wCL30hB3fdrNkkPYscrQLSDcjVn%2BLidG7OqreJPw%40mail.gmail.com >>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJQw1Nx7a-wCL30hB3fdrNkkPYscrQLSDcjVn%2BLidG7OqreJPw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOqqYVF7yPsUn9973GrRifEmqGT1OgJg%3DwVMc_8CdzeTi%2BmgFQ%40mail.gmail.com.