ホスト名の最後が数字なURLの扱いについて

WHATWG URL」の仕様で、ブラウザにおいて、ホスト名がIPv4でないが、数値で終わるURLは拒否されるように変更された。

github.com

例えば次のようなものです

  • foo.0
  • bar.0.09
  • 1.2.3.4.5

今まで、これらのホスト名は、その他のドメインと同じように、通常通り名前解決されます。Issueの起案者は、すでに具体的な攻撃があるわけではないとしつつも、紛らわしさや、eTLD+1 (same-site)の扱いの問題があるとのことです。

なお、次のようなものはIPv4アドレスにマッピングされアクセスできます。

Deprecate support for URLs with non-IPv4 hostnames ending in numbers

実際に、Chromeでは、そのような変更を入れる検討が始まっています。URL仕様の変更であり、http, https, ws, wss, fileなどで対象となるURLが拒否されます。拒否は、Google's URL parsing libraryのGURLで行われます。

Intent to Prototype: Deprecate support for URLs with non-IPv4 hostnames ending in numbers

なお、現状そのようなURLの名前解決が(0.0003%ほど)行われているようですが、多くのものが入力ミスなどと考察されています。hostsファイルを指定している可能性もありますが、詳細なデータはなさそうです。

動作確認

Chrome Canaryに変更が取り込まれたので動作確認する。
今までは名前解決が出来なかったというエラーだったが、URLパースエラーとなっていることがわかる。

f:id:ASnoKaze:20210827125848p:plain

URLバーに入力した場合は、URLとしてではなく、検索キーワードとして処理される模様