パスワードを忘れた? アカウント作成
15573137 story
インターネット

Web ブラウザーのバージョン 100 問題、未対策のメジャーサイトも 58

ストーリー by headless
対策 部門より
Google Chrome は 3 月 29 日、Mozilla Firefox は 5 月 3 日にバージョン 100 に到達するが、メジャーなサイトの中にも Web ブラウザーのバージョン 100 問題に対応していないところがまだ残っているようだ (Mozilla Hacks の記事The Verge の記事BetaNews の記事The Register の記事)。

Web ブラウザーのバージョン 100 問題はメジャーバージョンの桁数を決め打ちする User Agent パーサーにより、処理が正常に実行できなくなるというもので、非サポートの古いブラウザーを使用していると誤認識されるものから、一部の機能が動作しなくなるものまでさまざまな問題が発生する。

Webcompat が GitHub で受け付けているバージョン 100 問題のバグリポートでは現時点で 21 件が Closed、22 件が Open となっている。たとえば、ダイムラーのドイツの Web サイト (www.daimler.de) では Microsoft Edge のみバージョン 100 になると非対応ブラウザーと表示されて利用できない。実際に非対応ブラウザーの警告が表示されるのはリダイレクト先の group.mercedes-benz.com で、このドメインのサイトも Edge 100 では利用できない。

また、米 Yahoo の Web サイト (www.yahoo.com) では Firefox のみバージョン 100 でページ内の一部の機能がサポートされないと警告が表示され、ページ上部のナビゲーションコントロールが固定されないなどの問題が発生する。このほか、スタンダードチャータードの一部の市場向けページ (www.sc.com/in/ など)では警告画面が表示されて Chrome / Edge / Firefox ともにバージョン 100 で利用できず、Bathesda のサイト (bethesda.net) では利用自体はできるものの、 Chrome と Firefox のバージョン 100 で最新バージョンへのアップグレードが促される。

一方の Web ブラウザーもメジャーバージョンを 99 に固定してマイナーバージョンでメジャーバージョンを示すといった対策を準備している。Firefoxでは about:compat の「ユーザーエージェントの上書き」でバージョン 100 問題の影響を受けるサイトに対するメジャーバージョン上書きを準備しているが、問題が個別の対応で間に合わないほど広い範囲に影響する場合は一時的にメジャーバージョンを 99 にフリーズしてから他のオプションをテストするとのことだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • シェアの高いブラウザがバージョン100になる事態がいままでなかったので、このような問題は放置されてた
    シェアの高いブラウザがなんでもいいからバージョン100になれば、主要サイトは勝手に対応するので問題ない

    • てか、なんでいい加減なUser Agentチェックをするサイトの為に
      ソフト側が対応しなきゃならんのだろうか?

      親コメント
      • by Anonymous Coward

        そろそろUser Agent文字列というまったく信用できないもので判別することを非推奨にするべきだと思う。

        • by Anonymous Coward

          ブラウザで色々処理させるのを辞めたほうが早いと思うが。

      • by Anonymous Coward

        もっともな意見だが、現実に不誠実な開発者はいるわけで、困ったら利用者が意図的にUA偽装するくらいでは・・・?

  • by Anonymous Coward on 2022年02月20日 12時27分 (#4203561)

    バージョンナンバーが大きいほど偉いという謎の競争が始まった結果、
    それがなければ何十年も気にする必要がなかっただろう問題が発生、
    このことが予見できるくらいならこんなくだらない競争はしなかっただろう。
    他にも、とにかく速いペースで機能を増やさざるを得ない開発側の都合でユーザーが振り回される昨今。

    • by Anonymous Coward

      もはや一般ユーザーはブラウザのバージョンナンバーなど見てないんだから、ビルドナンバーとか日付けをバージョンナンバーとして使うとかで良いんじゃないかな。

      • by Anonymous Coward

        桁が増えただけで破綻するクソコードが原因なんだからそれはあまり意味がないのでは

        • by Anonymous Coward

          西暦4桁を前提に日付をバージョンナンバーとして扱えば西暦5桁になるまでは問題を先送りにできる。
          西暦10000年まで今の文明が続いてるとは思えないので問題は起きない。

          • by Anonymous Coward

            かつての開発者たちもそう思っていたんですよ。
            今作ってるシステムが2000年まで残っているわけがない、2桁で十分だ、と。

            • by Anonymous Coward

              30年(2000-1970)と8000年(10000-2000)はさすがに問題が違うのでは

              • by Anonymous Coward on 2022年02月21日 0時50分 (#4203816)

                ...みたいに余裕でいたら、
                2100年でバグったり、3000年でバグったり...
                いやまずは2038年か?いやいや2036年だ、昭和100年だ、注意すべき点が多すぎてもはや罠しかない。
                (修正ユリウスでオーバフローさせない自信があるなら石を投げて良し?)

                親コメント
            • by Anonymous Coward

              ×かつての開発者たちも
              〇今の開発者たちも

          • by Anonymous Coward

            それならバージョンを0埋め8桁でいいじゃん
            で、結局足りなくなって焦ると

    • by Anonymous Coward

      やはりMS-Windows2000は偉かったんだ。

      • by Anonymous Coward

        それはただのWindows NT 5.0定期

      • by Anonymous Coward

        埼玉スタジアム2002みたいな恥ずかしい名前をいつまで使ってんだ

        • by Anonymous Coward

          2021年に大々的に行われた東京オリンピック2020をもう忘れたか。

    • by Anonymous Coward

      > バージョンナンバーが大きいほど偉い

      京コンピュータという空前絶後のバージョン

    • by Anonymous Coward

      そうだ!
      バージョンナンバーが特定の、たとえば無理数に近ければ近いほど偉いという謎のルールを決めればどうかな。
      これなら桁数こそ増えるけれども、無限に大きくなることもなく、それでいて無限に開発を続けられる。
      開発を終了したくなったらら、きっちりその数になるということで。

      #eとかπとかの誰でも知ってそうなありきたりの数は避けるとして。

    • by Anonymous Coward

      バージョンが大きいほど偉いと考えるユーザがいることを理由に、
      Firefoxはラピッドリリースに踏み切ってバージョン水増しに走ったようだ。
      しかしそんな発想に至るユーザ層は、もとよりFirefoxなんて選ぶはずもない。

      • by Anonymous Coward

        Firefoxがそんな間抜けな設計のわけねえだろ。
        ちゃんとChromeの方が先に100になるように計算されてる。
        Δとか。

    • by Anonymous Coward

      これってバージョンナンバー競争なの?

      もうメジャーバージョンとかマイナーバージョンとかめんどくさくなって、
      バージョン番号なんてただのシーケンス番号、定期リリースしたら1増やすって思想で淡々とリリースしてるんだと思ってた。

      • by Anonymous Coward

        少なくとも、開発側の当初の言い分は「バージョン番号に意味をなくしたい」だったはず
        大きな数字が好きな、一部のアプリ開発者や使用者の問題だと思ってた

        • by Anonymous Coward

          昔は0.1から始まってなかなか1.0にならずに、その次は1.5だけど2.0に行く前に1.8を出して、みたいな感じでかなり詳しい人じゃないとバージョンの意味が理解できてなかった。

          どうせ数字は大小しか意味がないんだから、恣意的な有理数よりは自然数の方がいいってだけの話。

          • by Anonymous Coward

            だから意味を持たせ共有可能なルールにしたのがSemVerだが、人類はまだ依存関係地獄でもがいている。

    • by Anonymous Coward

      いっそのこと次はChromf/1.0.0.0にしてしまえよって思う

    • by Anonymous Coward

      バージョン競争なんてないよ
      もしかして高速リリースはバージョン番号を上げるためだけにやってるとでも思ってたの?

      >バージョンナンバーが大きいほど偉いという謎の競争が始まった結果、
      それはあなたの感想ですよね?

  • 弊社のあるシステムも実は「Chrome/NN」のNN部分2桁での判定コードがあるのですけど、「バージョン 100 問題」なんて大騒ぎされていなかったら、普通に3桁になるのだろうと考えてとっくに3桁対応に改修してます。
    でも、WHATWGの時代になってからのブラウザ業界って直前になってからころころ対応変えたりしますんで、このように大騒ぎされていると、最終的には「やっぱりバージョン100にしたら問題発生するので 99 を最終にして 99.XXX みたいなバージョン表記にします」なんて対応になりかねません。
    となると、3桁対応に変更する手間が無駄になるので、バージョンが 99 がリリースされてから 100 がリリースされるまでは4週間はあるわけですから、少なくとも99がリリースされてから2週間は様子見します。

    なお、「そもそもそんなの最初から数字部分を正規表現で [0-9]+ にしとけばよいだけでしょ。2桁固定なんて馬鹿げている。」なんて思っている人は、正規表現覚えたばかりの初心者かと思います。
    今はてブでホッテントリーになっている 正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ [nmi.jp] などを見ていただければ分かりますが、UserAgent のようにユーザーが自由に設定できて、しかもアクセスごとに判定が必要なような場面で気軽に正規表現を使うべきではありません。というか、UserAgentでもブラウザ判定に正規表現なんて不要です。
    仮に正規表現を使うにしても、他のパターンとの組み合わせによっては文字数の何乗かのチェックが走る0~1回以上(任意長)繰り返しのマッチなんて入れないに限ります。
    正規表現には異常な過負荷を発生させることができる罠が山ほど仕掛けられているし、処理系によってその条件が違うので、どうしても必要な場面以外では正規表現なんて使わないのに越したことがないです(使うなら少なくともタイムアウト処理も必要)。
    よくあるケースとして、「フレームワークやWebサーバががNNN文字で切り捨てる仕様になってるから大丈夫」なんて考えていて、バージョンアップやサーバ側やCDNでの設定変更でその制限が無くなって文字数制限が無くなってReDoS 食らう可能性もあります。

    • 本来であればバージョンナンバー3桁の対応はバージョン90とかそのへんで終わっているべきだった。そしてバージョン番号が3桁にならなかったらみんなであの苦労は何だったのだと嘆くのが正しい姿。
      問題なのは正規表現で判定するかではないし何桁で判定するかでもない。二桁決め打ちではなく一桁から3桁でも良いわけだし。
      問題なのは泥縄になってるところ。いや泥棒を捕まえながら縄を編んでるからちょっとだけマシ?
      てかバージョンなんてローカルで判断させてサーバに送らせりゃいい。

    • by Anonymous Coward

      ユーザーエージェントではなく機能ベースで判定しろと言われているのだからブラウザの判定を行うのはクライアントサイドだし、
      変なユーザーエージェント文字列が設定されていてReDoSになったとしても自業自得としか言い様がない。

  • by Anonymous Coward on 2022年02月20日 18時06分 (#4203681)

    一体なにを考えて実装しているのかと。

    • by Anonymous Coward

      Ubuntuバージョン番号の悪口はやめろ!

  • by Anonymous Coward on 2022年02月20日 20時46分 (#4203741)

    User Agent をやめて Client hints に移行するという話はどこいった?
     ch-ua:“Chrome”;v=“100”
    なんて表記になり、vの値を抜き取れば解決じゃなかったのか

    • by Anonymous Coward

      if "2" < v[0]
      なんてことする奴がいるから問題になってるんじゃ

    • by Anonymous Coward

      新方式に移行する計画があるなら、99以降のバージョンは新方式で示して、UAの方のバージョンは完全廃止まで99でカンストさせときゃいいんじゃないの
      99以降のバージョンを判別したいサイトは、これから判定処理を作るんだから、新方式で3桁以上にも対応した処理にしてもらえばいい
      過去に作られた旧方式での判定を使っているサイトで、これから登場する99以降のバージョンを区別出来なかったら困るケースは少ないでしょ

      • by Anonymous Coward

        Client hints導入の時点で2桁数字決め打ち実装してる方が頭おかしいのに
        仕様上は問題ない3桁以上でそのおかしな実装への対策のため新方式を導入する案ってひどい話だな

typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...