パスワードを忘れた? アカウント作成
14090823 story
Chrome

Google、ChromeでUser Agent文字列を凍結する計画 53

ストーリー by hylom
抜け道ができそうではある 部門より

headless曰く、

GoogleがChromeブラウザーでUser Agent文字列(UA)の凍結を計画しているそうだ(GoogleグループChrome Platform StatusWindows Central)。

WebブラウザーのUAは「Mozilla/5.0」「KHTML」「like Gecko」といった現在では特に意味のない情報が含まれる一方、ブラウザーバージョンやOSバージョンなどフィンガープリンティングに使われる可能性のある情報も含まれる。モバイル版ChromeではOSビルド番号も含まれていたが、iOS版ではChrome 69、Android版ではChrome 70で削除されている。また、Googleのサービスを含めUAによってブロックされたり、正常に表示されなかったりすることもある。そのため、VivaldiはChromeと同じUAに切り替えており、Chromiumベースの新Microsoft Edgeは接続先に応じてUAを切り替えて別のブラウザに偽装している。

UAの凍結は過去にSafariチームが試みているが、UAに応じたコンテンツのネゴシエーションに代わる方法がなく、一部の変更を取り消したという。Googleでは現在W3Cに提案しているUser-Agent Client Hints(UA-CH)がUA文字列の代替になると考えているそうだ。ChromeのUA凍結計画ではChrome 81で「navigator.userAgent」を非推奨とし、WebサイトがJavaScriptでUAを取得しようとするとコンソールに警告を出力する。Chrome 83ではWebブラウザのバージョンを凍結し、OSバージョンを統合する。9月中旬に安定版リリース予定のChrome 85ではデスクトップOSを示す文字列をデスクトップ版Webブラウザを示す共通のものにし、モバイルOS/デバイスを示す文字列は画面解像度ごとに共通化するとのこと。

UA凍結について、Safariは上述の通り既に実施しているが、MicrosoftMozillaも支持しているそうだ。ただし、MozillaではFirefoxへのUA-CH実装に消極的なようだ。

昨年Googleは「Privacy Sandbox」の構想を発表した際、サードパーティーのトラッキングcookieをブロックするとフィンガープリンティングなど不透明な手法の利用が進んでプライバシーがかえって低下すると述べていた。また、先日Chromeでのサードパーティーcookie廃止計画を発表した際にも、同様の説明を繰り返している。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • これは仕方ない (スコア:2, 参考になる)

    by Anonymous Coward on 2020年01月17日 17時27分 (#3746857)

    Vivaldiのリンク先の例を読むと、User Agent偽装がはびこっても仕方ないと言わざるを得ない。

    Here are just a handful of current examples:
    On Google.com if you present a Vivaldi user agent and arrive via a redirect, the search text box will be misaligned
    On Google Docs if you present a Vivaldi user agent you will receive a warning
    On Facebook’s WhatsApp web interface if you present a Vivaldi user agent, you cannot enter the site and are advised to switch to one of our competitors
    On Microsoft Teams (chat and collaboration website), presenting a Vivaldi user agent will stop you from being able to use the website
    On Netflix, presenting a Vivaldi user agent results in a suggestion to install Silverlight to play videos… yes… really… Silverlight!

    Silverlightは笑う。

    かといってGoogleのUser-Agent Client Hintも、仕様書を読む限り仰々しく仕様化されたUser Agentに過ぎず、まったく解決になっていないように思う。
    根本的には、機能単位での照会インターフェイスを提供するのが解決策だと思う。

    • by Anonymous Coward on 2020年01月18日 7時00分 (#3747084)

      > 機能単位での照会インターフェイス

      Googleを含むすべてのブラウザーベンダーはそれを使えと事あるごとに言っているが、Googleを含むほぼすべてのwebサイト開発者が話を聞かないからしかたない。Googleが自分で言っていることすら守れないのは、つまりそのアプローチが非現実的だということを示している。

      またDOMやSVGにはかつてhasFeatureという機能検出のためのメソッドが存在したが、無残に失敗して現在は常にtrueを返すだけのメソッドと化している。

      親コメント
    • by Anonymous Coward

      Vivaldiのリンク先の記事、記事の先頭に無意味なアイキャッチ画像載せてるけど、こういう文化って外国にも普通にあるんだな。
      意識したことなかったけど、なんとなく日本のアフィブログの文化だと思ってた

      • by Anonymous Coward

        馬鹿げた変装だろ?俺もそう思うよ
        って表明を画像1個で済ませてるんだと思うとアリ

  • by Anonymous Coward on 2020年01月17日 16時51分 (#3746834)

    余分な情報は付けなくていいけど、「Chrome 81」だののブラウザ名とバージョン番号は正直に名乗って欲しいんだけど…。
    UAによってブロックするアホが居るから偽装が横行するのは分かるが、本来はUAに応じて動きを変える必要があるから使ってるわけで、凍結というのは行き過ぎでは?

    • by Anonymous Coward on 2020年01月17日 17時03分 (#3746839)

      ブラウザ側のバグとか特殊仕様をカバーしようとするからいつまでも
      それらが解消されないということもあるのでは?
      ダメならとっとと捨てるか替えるか直すかしてくれと。

      親コメント
      • by Anonymous Coward

        「IEだけクソ仕様!」とか散々グチってきただろ
        モダンになったからってCSSもDOMも挙動の違いが無くなったわけじゃないぞ

    • by Anonymous Coward
      UAに応じて動きを変えられるというのが幻想なのでは
      未来に登場するものを含むありとあらゆるすべてのブラウザのそのバグと挙動をまとめた巨大なアカシックレコードでもあるならともかく
      どう言い繕っても、UAに応じて動きを変えたい、なんて私はUAによってブロックするアホですという告白でしかないんだから。
    • by Anonymous Coward

      ユーザーを識別できるのはG..G1εだけで良かろうなのだぁ~!!

    • by Anonymous Coward

      UAに応じて動きを変えるのは、せいぜい携帯電話などのモバイルか、タブレットなのか、デスクトップPCなのかといった、
      サイトを利用する上で操作性や見易さを配慮する必要のある場合に限定するべきなんじゃないかな。

      同じ実行環境だけど、ブラウザーが異なるとサイトの挙動を変えなきゃならないというのは、W3Cの互換性からして変だと思う。
      ましてや実行環境もブラウザーも同じ、ブラウザーのバージョンが違うことに合わせての挙動変更は、やり過ぎでしょう。
      まだWebの仕様に対する解釈の揺らぎがあった黎明期ならばともかく…。

      • by Anonymous Coward

        outlook.com も、safariを名乗って使うと、全然違ったシンプルビューになり。
        問題は JavaScript なんじゃないの。

      • by Anonymous Coward

        >同じ実行環境だけど、ブラウザーが異なるとサイトの挙動を変えなきゃならないというのは、W3Cの互換性からして変だと思う。
        変な挙動だとは思うけど、そもそもUser-AgentやAccept-Languageによって返すコンテンツを変化させることを規格化したのはw3c

        >まだWebの仕様に対する解釈の揺らぎがあった黎明期ならばともかく…。
        中核機能の解釈揺れは減っても新しい機能がどんどん増えてるから、ブラウザごとの差異は今でも無視出来る問題じゃないと思う

    • by Anonymous Coward

      UA-CH を使うなら、そっちは正直に名乗るんでしょう。

      クライアントに応じて条件分岐するにしても、より具体的な内容で分岐すべきかと思います。
      c++で、コンパイラとそのバージョンで分岐するよりも、機能テストマクロで分岐するようなイメージ。(といっても伝わらないんだろうな)
      それでも、挙動がバグってる系はバージョン番号で分岐する形で残るとは思いますが。

    • by Anonymous Coward

      正直に名乗ったところで中途半端な解決にしかならないんだよな。
      どうせ世にあるブラウザすべてを判別することは不可能で、問題なくレンダリングや実行できるブラウザなのにサーバ側の持ってるリストにないというだけではじかれることになるから。
      問題があるのはテキスト文字列で動作を切り替えようというすでに時代遅れの考えの方。

      • by Anonymous Coward

        宣言的な(いたる所で「より分かりやすい」との触れ込みで採用されるが、
        100%数年で消え去る、実証された筋の悪い)テキスト文字列で動作を。。。
        の間違いでは?

    • by Anonymous Coward

      UAをパースして「このブラウザーならこの関数持ってそう」と判断するのではなく、実行時に実際にその関数が存在しているかを調べて、あれば呼ぶ、なければフォールバックするという実装にしなさいってことです

      • by Anonymous Coward on 2020年01月17日 19時46分 (#3746939)

        同じ関数で、片方がバグあり、片方がバグなしの時はどうするので?

        親コメント
        • by Anonymous Coward

          バグありの場合の回避手段があるなら、その回避手段の方をバグの有無に関係なく使えばいいじゃん。
          無駄に二重実装する必要ない。

          • by Anonymous Coward

            代替実装は重かったり不完全だったりするからな、あくまで代替
            でなきゃ最初からわざわざそんな面倒くさい真似しないっつうの

    • by Anonymous Coward

      「正直に名乗って欲しいんだけど(ブロックするから)」
      で馬鹿正直に名乗るわけがないだろ

  • by Anonymous Coward on 2020年01月17日 17時43分 (#3746869)

    スマホ向けページの一覧性の悪さが気に入らなくてデスクトップ用UAにしているので、そのような切り替えに配慮してあるなら文句はない

    • by Anonymous Coward

      AndroidのChrome自体、PCサイトモードにする=デスクトップ用UAにする、という実装だから、大丈夫じゃない?

      • by Anonymous Coward

        中途半端なサイズのタブレット(tvdpi)でまともにブラウジングするために、
        firefoxのアドオンでiPhoneのUAに偽装している

        Android版ChromeってUAの偽装できないよね
        アドオンも使えないし

        いつかアドオンが使えるようにして欲しいんだが

  • by Anonymous Coward on 2020年01月17日 18時25分 (#3746893)

    どういう意味?

    このままもうこれ以上変更しないと想像するんだけど、たぶんなくすって意味なんだよね?

    • by Anonymous Coward

      無くすことはないと思う。
      UAをなくしたら互換性もなくなって、正しく動作しないサイトがウジャウジャ出てくるから。

      互換性問題は甘く見ない方が良い。
      偽装がはびこるそもそもの理由も互換性問題なわけだしな。

      • by Anonymous Coward

        ロボット扱いされて無視だな

  • お金が絡むシステムだとバージョンを含めてブラウザを限定する必要があることがあります。

    何故、UserAgentで制限する必要があるかといいますと、未知のブラウザでは正常動作が保証できないからです。

    それでどんな問題が生じたかというと、過去に弊社が関わっていたシステムで生じた分かりやすい問題としては、
    過去に主要ブラウザにて JavaScript の confirm や alert を複数回出すと、
    「今後ダイアログボックスを生成しない」のようなチェックボックスが現れ、それにユーザがチェックを入れるとダイアログ等が表示されなくなる問題がありました。

    しかも、当時は主要ブラウザの間で当該チェックボックスをチェックした際の挙動が異なり、confirm で自動的に false になるブラウザと true になるブラウザが混在するという大問題でした。

    # ちなみに、最新版のGoogle Chromeではこういったチェックボックスは表示されなくなり、無限アラートの作成が可能に戻りました。

    弊社の開発したシステムでは、このconfirm や alertで重要事項を告知して、ユーザに確認を求めていました。
    このブラウザの自動アップデートのせいで、「○○とは聞いていなかった」とか「間違えって○○をタップしたら確認画面も表示されずにトランザクションが実行されたので返金しろ」とか苦情が来て、返金等の対応をせざるを得なくなりました。
    重要事項はアラートだけで表示していたわけではないものの、電子消費者契約法における誤操作防止の確認画面や消費者契約法における重要事項の告知といった機能をもっていたアラートだったからです。

    このようにブラウザによって重大な変更が勝手にされることもあるので、この事件のあとは、UserAgentの限定に加えて、新しいブラウザのβ版が出るたびの検証作業が必要になりました。

    • そりゃalert()を表示しないのはブラウザの自由ってHTMLの仕様 [whatwg.org]で決まってるしな
      悪いのはブラウザじゃなくて仕様書を確認しなかった君
      親コメント
      • by Anonymous Coward

        J-STAGEがTLS仕様に反した変更を行ったせいでFirefoxから接続できなくなった件を思い出した。

        科学技術振興機構の電子ジャーナルプラットフォーム「J-STAGE」では未だにFirefoxが非推奨
        https://it.srad.jp/story/18/12/16/0458254/ [it.srad.jp]

        そろそろ推奨ブラウザとか推奨バージョンとかやめる頃合いなんじゃないかな。

        • by Anonymous Coward

          ブラウザ側が独自の拡張機能付けたり勝手に挙動や仕様変えるようなことするのも問題かと
          ウェブ開発側とブラウザ開発側で合議して仕様決めて、仕様外の挙動を一切認めないモードを作るぐらいしないとブラウザ判別、バージョン確認の需要は無くならないだろう

          じゃないとJavaScriptを使わず処理は全てサーバー側で行うか、
          全てのウェブブラウザを禁止にして自ら開発したアプリを使わせる仕様にするかしないと責任持てないかと

      • by Anonymous Coward

        そもそも、システムを開発した当時はW3C全盛期で、DTDもHTML 4.01 Transitionalを宣言していたんですよ
        そのJavaScriptの動作がブラウザのアップデートで勝手にWHATWGの仕様になったわけですね

        JavaScriptが動作しない環境への配慮が必要なのは当時でもそうでしたが
        confirmやalertが素通り(表示されず)に、trueが返されるるというのは当時としては完全に予想外の動作です

        HTML 4.01 の時代に、「将来はアラートを複数回表示させると今後表示しないというチェックボックスが出現するかもしれない」なんて未来の予測はほぼ不可能です

        • by Anonymous Coward

          2000年に勧告された XHTML ではないってことはそれ以前かな?
          すると WHATWG もなかった時代の話で責任はないな

      • by Anonymous Coward

        こういちいち突っかかる言い方をする奴がスラドをつまらなくする。

        • by Anonymous Coward

          こういちいち突っかかる言い方をする奴がスラドをつまらなくする。

          お前の価値観じゃん。
          こういう自分の価値観を人に押し付ける奴が、この世界をつまらなくする。

    • ここまで問題になってるのに根本のUIを直さずにUAで制限するという明後日の対応になるのが逆にすごい。

      親コメント
      • by Anonymous Coward

        典型的な国産粗悪品ですわほんと

      • by Anonymous Coward

        そりゃ期間の問題でしょ
        取り急ぎの対応としてはUA制限は確実性が高い

        • by Anonymous Coward

          これがスラド名物、書かれてないことを読み取れるエスパーでございます。

        • by Anonymous Coward

          複数回のalertが無視できるようになってたのはChromeからのユーザー離れを防ぐためだろ
          それを重要な所に持ってくる反顧客設計が本番環境に出てしまうこと自体が開発体制として問題アリだと思う

          • 複数回のalertが無視できるようになってたのはChromeからのユーザー離れを防ぐためだろ

            Chromeの複数回のalertやconfirmが無視できる機能は、結局害の方が大きかったので廃止になりました。
            Googleはこのように機能を追加したり削除したりとユーザをまるで実験台のように使用しているだけであって、ユーザ離れを防ぐ効果は無いでしょう。

            ユーザビリティからしてもalertやconfirmが表示されたままの状態でタブを切り替えたり閉じたりできれば問題ありませんでした。
            また、alertやconfirmを無視することで、Webサイトが機能不全になるだけでなく、ループが含まれる場合にJavaScriptの処理が無限ループしてCPUを消費してOS全体が重くなる場合まであり、弊害があまりにも大きかったのです。

            親コメント
      • by Anonymous Coward

        このようにブラウザによって重大な変更が勝手にされることもあるので、

        とか言っておきながらUserAgentは不変と思い込んでいるのがなんとも。
        大体IEですら当初からMozillaと偽装してた代物。
        UserAgentでブラウザ識別出来ると考える奴はシステム設計しちゃダメだわ。

    • by Anonymous Coward

      こういうサイトがあるから
      こっちはUA偽装しなきゃいけないわけで

  • by Anonymous Coward on 2020年01月17日 20時42分 (#3746968)

    実際広告業界でフィンガープリンティングに関する問い合わせがすごく増えてるって言ってるのをTwitterで見かけたし、Googleが気に食わなくてもこれは否めない

  • by Anonymous Coward on 2020年01月17日 21時52分 (#3747010)

    ちょっと前までは、IEじゃないと見られませんというサイトが、それこそ国がやっているWebページでもあったわけで、そこではUAを見て弾いていたんだと思う。
    ところが Microsoft Edge が Chromiumベース になれば、サイト制作側のスキル不足で表示や動作がおかしくなるという状況が、将来的に軽減されることが予想される(そうだといいですね……)。

    もし Microsoft が自社の独自エンジンに拘ったままだったら、UA偽装の問題提起をしても現実的じゃない話になっていたのではないか、と思いませんか?

    • by Anonymous Coward

      世界統一国家の支配の下、世界共通言語で話す社会なんざ勘弁してくれって思うが、
      アメカスとブリ屑はいい加減にヤードポンドやめろとも思うしなぁ
      ブラウザはどっちなのか

      しかし実装が一つしかないと、仕様と実装って概念を理解できないバカが溢れそうだ

      • by Anonymous Coward

        じゃあ、その「一つ」以外の実装を使うことから始めよう。

        というか、度量衡をヤードポンドで実装するのも自由じゃないか。
        SI系だけしかないと、仕様と実装って概念を(ry

    • by Anonymous Coward

      確定申告のために配信を3か月延期していますけどね
      https://japanese.engadget.com/jp-2020-01-16-edge-4.html [engadget.com]

  • by Anonymous Coward on 2020年01月18日 10時48分 (#3747139)

    ……を全てのブラウザやツールに盛り込んだ方が早そう
    適当な(有名ブラウザっぽい)文字列をランダムで返せばいいんじゃないの?
    その昔IriaだかIrvineにはそんな設定があったような。

typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...