前書き
userAgentを使ってアクセス元のOSとブラウザを判定する(JavaScript) で実装したuserAgentをつかってOSやブラウザの情報を取得して表示するJavaScriptとHTMLの動作を確認するために、ブラウザのuserAgentを偽装する。
Chromeでもやれそうだったが、Firefoxでやることにした。
Firefoxのユーザーエージェントを変更(偽装)する - 歌うキツネ (2016年9月末 更新停止)をヒントにやってみた。プラグインは使わず、about:configをいじった。
userAgentの一覧は
List of User Agents - WhatIsMyBrowser Developers
を見てOSやブラウザを変えてuserAgentの文字列をコピペした。
このテクニックを悪用しないように。
デフォルトの状態を確認
色々やる前に、userAgentを使ってアクセス元のOSとブラウザを判定する(JavaScript)で実装した機能をFirefox 78.0 (Windows 10)で実行するとどうなるかを載せておく。
about:config
Firefoxを開き、アドレスバーにabout:config
を入力。自己責任だよ、という注意書きがでるので、望むところだ、と回答して編集ページを開く。最近のFirefoxだと設定項目を一覧にするのではなく、検索させるようになっているようで、テキスト欄が出てくるだけ。
general.useragent.override
を入力する。該当する設定項目がない場合は、新規入力モードになるようで、その項目のデータ型を聞いてくる。もちろん文字列を選択し、+
ボタンをクリック。
画像は「文字列」を選択する前に撮ったので注意。
で、List of User Agents - WhatIsMyBrowser Developersから適当なuserAgentの文字列をもってきてコピペし、チェックマークをクリックするとuserAgentにセットされる。
たとえばmacOS 10.15のSafari 13.1をセットした場合はこんな感じ。
で、htmlファイルを実行(ページをリロード)。
表示がmacOS 10.15.4とSafari 13.1に変わる。
元に戻す
元に戻す場合は、general.useragent.override
のゴミ箱アイコンをクリックして消す。htmlファイルをリロードすると、デフォルトに戻っていることが確認できる。
終わりに
userAgentを使ってアクセス元のOSとブラウザを判定する(JavaScript) でも書いたようにuserAgentは廃止される可能性が高い。少なとくもGoogle Chromeでは廃止されるし、他のブラウザも追従する可能性が高い。
なので、このテクニックも近いうちに使えなくなるかもしれないが、web開発者向けにUser-Agent Client Hintsを一時的に偽装するような方法は生み出されると思う。悪用はしない(再度)。